Как я могу расширить базу данных Redis с помощью модуля redisgraph.so?

Не удалось импортировать модуль redisgraph redisgraph.so в базу данных Redis.

  1. Я успешно скомпилировал redisgraph.so из исходников.
  2. Права на выполнение redisgraph.so установлены для всех.

Я старался:

$ redis-cli
> shutdown ((stop redis-server))

$ redis-server --loadmodule pathto/redisgraph.so

((System replies:))

 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=2407, just started
 # Configuration loaded
 * Increased maximum number of open files to 10032 (it was originally set to 1024).
 # Creating Server TCP listening socket *:6379: bind: Address already in use

$ redis-cli
> module list
(empty list or set)
> module load pathto/redisgraph.so
(error) ERR Error loading the extension. Please check the server logs.
((log file says: *no permission*))

База данных Redis отлично работает как база данных ключ-значение. Но я не могу расширить его функциональностью графа.

Пока я не могу отбрасывать такие команды, как «GRAPH.QUERY» (redis отвечает: «неизвестная команда»).

Я понятия не имею, почему redis-server игнорирует команду импорта или redis-cli жалуется на права доступа.

Создание Twitter-подобного приложения Trending Topics App с Redis (на примере PHP)
Создание Twitter-подобного приложения Trending Topics App с Redis (на примере PHP)
Redis - это популярная база данных типа "ключ-значение" в памяти с поддержкой различных типов и структур данных, которая в основном используется для...
1
0
761
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ошибка указывает на то, что у вас уже есть запущенный процесс, привязанный к тому же порту (вероятно, другой сервер redis).

Кроме того, вам лучше использовать redisgraph с последней версией Redis (т.е. v5).

Вот и все! завершение работы redis-cli не останавливает сервер. Но /etc/init.d/redis-сервер остановить это делает. Теперь Redis может импортировать необходимый модуль. Спасибо!

Gantter 07.04.2019 16:48

Лучше, чтобы redis управлялся systemd, и вы можете настроить его следующим образом: Внутри

  • обновите контролируемую директиву в /etc/redis/redis.conf, чтобы использовать systemd, установив контролируемая система
  • Создание файла redis systemd /etc/systemd/система/redis.service и установка директивы unit, service и install:
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

Затем запустите редис

sudo systemctl start redis
sudo systemctl status redis

Если вы хотите, чтобы Redis автоматически перезапускался при запуске сервера, выполните следующие действия: Предполагая, что все эти тесты сработали и вы хотите автоматически запускать Redis при загрузке сервера, включите службу systemd:

sudo systemctl enable redis

Другие вопросы по теме