Запуск нескольких экземпляров Redis на Centos

Я хочу запустить несколько экземпляров Redis на Centos 7. Может ли кто-нибудь указать мне правильную ссылку или опубликовать шаги здесь.

Я гуглил для информации, но я не нашел никакой соответствующей информации.


person Ashish Sinha    schedule 06.09.2016    source источник
comment
Возможный дубликат Как я могу запустить Redis на одном сервере на разных портах?   -  person Dirk Eddelbuettel    schedule 06.09.2016
comment
мой вопрос не повторяется   -  person Ashish Sinha    schedule 06.09.2016


Ответы (2)


Вы можете запускать несколько экземпляров Redis, используя разные порты на одном компьютере. Если это вас беспокоит, вы можете выполнить следующие шаги.

При установке первого экземпляра Redis он по умолчанию прослушивает localhost:6379.

Для второго экземпляра создайте новый рабочий каталог

Экземпляр Redis по умолчанию использует /var/lib/redis в качестве рабочего каталога, содержимое дампа памяти сохраняется в этом каталоге с именем dump.rdb, если вы его не меняли. Чтобы избежать конфликтов во время выполнения, нам нужно создать новый рабочий каталог.

mkdir -p /var/lib/redis2/
chown redis /var/lib/redis2/
chgrp redis /var/lib/redis2/

Создать конфигурации

Создайте новый файл конфигурации, скопировав /etc/redis.conf

cp /etc/redis.conf /etc/redis2.conf
chown redis /etc/redis2.conf

Измените следующие настройки, чтобы избежать конфликтов

logfile "/var/log/redis/redis2.log"
dir "/var/lib/redis2"
pidfile "/var/run/redis/redis2.pid"
port 6380

Создать файл службы

cp /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis2.service

Измените настройки в разделе «Сервис».

[Service]
ExecStart=/usr/bin/redis-server /etc/redis2.conf --daemonize no
ExecStop=/usr/bin/redis-shutdown redis2

Начать с загрузки

systemctl enable redis2

Запустить второй Redis

service redis2 start

Проверить статус

lsof -i:6379
lsof -i:6380

Следуя этому, вы можете запустить два сервера Redis. Если вы хотите больше, повторите шаги еще раз.

person Selva Kumar    schedule 07.09.2016
comment
Большое спасибо, это помогает - person Ashish Sinha; 07.09.2016
comment
У меня есть еще один вопрос. В разделе Изменить следующие настройки, чтобы избежать конфликтов, в последнюю строку добавьте сценарий запуска. Что это значит? - person Ashish Sinha; 07.09.2016
comment
Когда я запускаю службу redis-6379 start, я получаю следующее сообщение Перенаправление на /bin/systemctl start redis-6380.service ==== АУТЕНТИФИКАЦИЯ ДЛЯ org.freedesktop.systemd1.manage-units === Аутентификация требуется для управления системными службами или единицы. Аутентификация как: Ashish K (ashish) Пароль: XXX Но процесс сервера redis отсутствует - person Ashish Sinha; 07.09.2016
comment
Отредактируйте следующие настройки, чтобы избежать конфликтов, это означает, что вам нужно установить отдельный файл журнала, файл pid, datadir для нового экземпляра Redis. - person Selva Kumar; 08.09.2016
comment
Приносим извинения за неудобства. Пожалуйста, не считайте фразу "добавить сценарий запуска" ошибочно упомянутой. - person Selva Kumar; 08.09.2016
comment
Для вашего второго вопроса: вам нужно изменить все настройки в файле redis2.conf. Необходимо указать отдельные файлы для каждого экземпляра. - person Selva Kumar; 08.09.2016
comment
Обратите внимание, что для запуска Redis с помощью systemd я бы использовал systemctl start redis, а не команду sysv, как показано. - person Alexis Wilke; 30.09.2019

Если я установлю --daemonize no, Redis вылетит при вставке данных.

ExecStart=/usr/bin/redis-server /etc/redis2.conf --daemonize no

Следует изменить на

ExecStart=/usr/bin/redis-server /etc/redis2.conf --контролируемый systemd

Мой Redis 5.0.7.

к вашему сведению.

person Goodspeed Lam    schedule 20.12.2019
comment
как --daemonize не меняет уравнение? - person OAH; 05.07.2020
comment
@OAH Вы можете шаг за шагом следовать первому комментарию и vi /usr/lib/systemd/system/redis2.service, чтобы изменить уравнение. - person Goodspeed Lam; 07.07.2020