Отредактировано 4 дней назад от ExtremeHow Редакционная команда
RedisЛинуксКластерКонфигурацияНастройкаРаспределенная системаВысокая доступностьМасштабируемостьБаза данныхСервер
Перевод обновлен 4 дней назад
Redis — это популярное хранилище данных в оперативной памяти, которое можно использовать в качестве базы данных, кэша и брокера сообщений. Он поддерживает такие структуры данных, как строки, хэши, списки, множества и другие. Кластер Redis предоставляет способ выполнения установки Redis, в которой данные автоматически разбиваются на несколько узлов Redis. Это руководство проведет вас через шаги по настройке кластера Redis на машине с Linux.
Сначала вы должны убедиться, что Redis установлен на всех узлах, участвующих в кластере. Используйте следующую команду в зависимости от вашей дистрибуции Linux:
sudo apt update sudo apt install redis-server
sudo yum install epel-release sudo yum install redis
Запустите и включите службу Redis:
sudo systemctl start redis sudo systemctl enable redis
На каждом узле Redis необходимо настроить экземпляр Redis для режима кластера. Для этого вам нужно отредактировать файл /etc/redis/redis.conf
.
Найдите и измените следующие конфигурации:
bind 0.0.0.0
для разрешения соединений из-за пределов localhost.protected-mode
на no
.cluster-enabled
и установите его в yes
.cluster-config-file nodes-6379.conf
, чтобы указать имя файла для конфигурации кластера.cluster-node-timeout 5000
, что является временным интервалом, после которого узел считается нерабочим.appendonly
и установите его в yes
для сохранности данных.Пример секции файла redis.conf
может выглядеть следующим образом:
bind 0.0.0.0 protected-mode no port 6379 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 5000 appendonly yes
После сохранения изменений перезапустите службу Redis, чтобы применить новую конфигурацию:
sudo systemctl restart redis
Создайте директории для конфигурации и данных узлов кластера. Для простоты предположим, что путь - /var/lib/redis/
. Повторите это для каждого узла:
sudo mkdir -p /var/lib/redis/6379 sudo chown redis:redis /var/lib/redis/6379
Кластер Redis должен держать некоторые порты открытыми для связи. Для каждого узла следующие порты должны быть открыты в брандмауэре:
Используйте iptables
или настройки брандмауэра в облаке провайдера, чтобы разрешить эти порты.
Далее мы подключим все настроенные экземпляры Redis для формирования кластера. Используйте инструмент redis-cli
для этой цели. На любом узле выполните следующую команду:
redis-cli --cluster create 192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 192.168.1.4:6379 192.168.1.5:6379 --cluster-replicas 1
Замените IP-адреса на IP-адреса ваших узлов. Опция --cluster-replicas 1
гарантирует, что у каждого главного узла будет одна реплика. Эта команда попросит вашего подтверждения перед распределением мастеров и слейвов в рамках конфигурации кластера.
После настройки кластера вы должны проверить его конфигурацию, подключившись к нему с помощью любого узла с помощью инструмента redis-cli
:
redis-cli -c -p 6379
Чтобы проверить статус кластера, можно запустить команду:
cluster nodes
Этот вывод отобразит все узлы в вашем кластере с их ролями (мастер или слейв), идентификаторами и IP-адресами.
Когда ваш кластер запущен и работает, вы можете задаться вопросом, как выполнять регулярные операции. Вот несколько полезных команд для управления кластером:
Чтобы добавить новый узел в кластер:
redis-cli --cluster add-node newnodeip:port existingnodeip:port
Для удаления узла из кластера:
redis-cli --cluster del-node currentnodeip:port <node_id>
Кластер Redis использует хеш-слоты для определения, где будут храниться данные. Иногда может потребоваться перераспределение слотов с одного узла на другой:
redis-cli --cluster reshard currentnodeip:port
Некоторые лучшие практики для обеспечения стабильности и производительности при управлении кластером Redis включают:
redis.conf
.Настройка кластера Redis на Linux включает установку Redis на нескольких узлах, конфигурирование каждого экземпляра для режима кластера и подключение их между собой с помощью инструмента CLI. Хотя это руководство предоставляет подробное пошаговое руководство, для достижения оптимальной производительности и стабильности потребуется регулярное управление и мониторинг. Следуя этому руководству, вы теперь сделали важный шаг на пути к использованию кластера Redis и его преимуществам для управления распределенными данными.
Если вы найдете что-то неправильное в содержании статьи, вы можете