Серия развертываний Docker: Docker Compose устанавливает три главных и три подчиненных кластера Redis
Серия развертываний Docker: Docker Compose устанавливает три главных и три подчиненных кластера Redis

Резюме/Чжу Цзицянь

В повседневной разработке или программировании часто используются кластеры Redis. Если следовать традиционному методу сборки одной машины одну за другой, это неизбежно будет слишком громоздким. Поэтому ее можно быстро собрать с помощью оркестровки docker-compose. В процессе строительства я записывал операции, чтобы, когда мне в будущем понадобится построить три главных и три подчиненных узла, я мог быстро построить их на основе предыдущего успешного опыта.

1. Экологическая подготовка

Подготовьте три машины. На каждой машине запланируйте установку главного узла Redis и подчиненного узла Redis.

машина

Узел Redis

Порт узла

192.168.31.130

redis-master/redis-slave

6379/6380

192.168.31.131

redis-master/redis-slave

6379/6380

192.168.31.132

redis-master/redis-slave

6379/6380

2. Подготовка документов

2.1. Создайте каталог Узел Redis.

Соответственно на 192.168.31.130, 192.168.31.131, 192.168.31.132машина,Выполните следующую команду,Создайте каталог файлов главного-подчиненного узла Redis ——

Язык кода:javascript
копировать
for dir in redis-master/data redis-slave/data; do mkdir -p "/opt/docker/redis-cluster/$dir";done

2.2. Создайте файл конфигурации узла redis.conf.

Соответственно на 192.168.31.130, 192.168.31.131, 192.168.31.132машинаиз/opt/docker/redis-cluster/redis-master/и/opt/docker/redis-cluster/redis-slave/в каталоге,Создайте файл redis.conf.,Содержимое файла включает в себя следующие атрибуты:

Язык кода:javascript
копировать
port 6379 #обозначение Redis Номер порта, который прослушивает сервер. Это номер порта, с которым взаимодействует клиент. Redis Порт, через который общается сервер.
save 900 1#Когда в заданном интервале времени выполняется много операций записи, Redis Будет выполнен автоматический снимок (создание RDB документ).
save 300 10
save 60 10000
dbfilename dump.rdb#обозначениегенерироватьиз RDB Имя файла.
dir /data #обозначениефайл персистентностиизкаталог хранения。
appendonly yes #давать возможность AOF(Append-Only Файл) режим сохранения.
appendfilename "appendonly.aof" #обозначение AOF Имя файла.
appendfsync everysec #контроль AOF Когда содержимое буфера синхронизируется с жестким диском. варианты здесь everysec Показывает синхронизацию каждую секунду
cluster-enabled yes #давать возможность Redis Функционал кластера.
cluster-config-file nodes.conf #обозначение Сохранение информации о топологии кластераиз Имя файла конфигурации。
cluster-node-timeout 5000 #Установите таймаут для связи между узлами в миллисекундах.

Ярлык команды, запускаемый непосредственно в Linux——

Язык кода:javascript
копировать
for dir in redis-master redis-slave; do 
 if [ "$dir" == "redis-master" ]; then
    port=6379
  elif [ "$dir" == "redis-slave" ]; then
    port=6380
  fi
echo "port $port 
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /data 
appendonly yes 
appendfilename "appendonly.aof" 
appendfsync everysec 
cluster-enabled yes 
cluster-config-file nodes.conf 
cluster-node-timeout 5000" > /opt/docker/redis-cluster/$dir/redis.conf;done

После завершения операции каталог данных и файл redis.conf создаются в /opt/docker/redis-cluster/redis-master/ и /opt/docker/redis-cluster/redis-slave/——

Содержимое файла redis.conf соответствует тому, что было установлено ранее.

3. Напишите файл оркестрации docker-compose.yml.

В каталоге /opt/docker/redis-cluster/ трёх машин соответственно,Создайте файл docker-compose.yml.,Содержание следующее:

Язык кода:javascript
копировать
version: '3.1'
services:
  redis-master:
    image: redis:5.0.8
    container_name: redis-master
    restart: always
    network_mode: "host" 
    volumes:
    - /opt/docker/redis-cluster/redis-master/data:/data
    - /opt/docker/redis-cluster/redis-master/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server","/usr/local/etc/redis/redis.conf"]
  redis-slave:
    image: redis:5.0.8
    container_name: redis-slave
    restart: always
    network_mode: "host" 
    volumes:
      - /opt/docker/redis-cluster/redis-slave/data:/data
      - /opt/docker/redis-cluster/redis-slave/redis.conf:/usr/local/etc/redis/redis.conf
    command: [ "redis-server","/usr/local/etc/redis/redis.conf" ]

После завершения выполните команду docker-compose up -d——

Выполните команду docker ps -a, чтобы проверить, нормально ли работает контейнер. Следующий факт доказывает, что проблем нет:

4. Выполните инструкции для формирования кластера Redis.

4.1. На любой машине.,Выполните следующие инструкции,Войдите в докер-контейнер ——

Язык кода:javascript
копировать
docker exec -it redis-master bash #redis-master соответствует докеру ps Имя контейнера, просматриваемое параметром -a, — redis-master.

4.2. Создайте кластер.

Язык кода:javascript
копировать
redis-cli --cluster create  192.168.31.130:6379  192.168.31.130:6380  192.168.31.131:6379 192.168.31.131:6380 192.168.31.132:6379 192.168.31.132:6380 --cluster-replicas 1

После завершения выполнения журнал печати выглядит следующим образом:

После выполнения команды появится запрос «Могу ли я установить вышеуказанную конфигурацию? (введите «да», чтобы принять):» Введите здесь «да» и нажмите Enter. Если возникает следующая ситуация, кластер Redis успешно создан:

Вы можете войти в клиент Redis и просмотреть состояние кластера, выполнив следующие инструкции:

Язык кода:javascript
копировать
root@hadoop1:/data# redis-cli -c -h 192.168.31.130 -p 6379

Затем выполните команду «Информация о кластере», чтобы проверить состояние кластера. Если отображается сообщение «cluster_state:ok», это означает, что кластер создан нормально.

Конечно, вы можете дополнительно проверить статус каждого узла с помощью команды кластерных узлов. Это уже статус кластера из трех главных и трех подчиненных ——.

Выше описан весь процесс построения кластера.

Если вы никогда раньше не играли в Docker,,Вы можете обратиться к моему предыдущемуизодна статьяDockerСоздание рекордных статей《Примечания о проблемах, возникающих при установке Docker на CentOS7.》,Сначала настройте среду Docker

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose