эксплуатация и техническое обслуживание Linux - для создания высокой доступности Redis кэша

предисловие

Redis является высокой производительности базы данных ключ-значение, в настоящее время все больше и больше предприятий и приложений, использующих Redis в качестве сервера кэширования. Хозяин является JAVA фоновым программисты, можно считать половину инженер эксплуатации и технического обслуживания. Redis построена на сервере Linux, как он не может? Здесь хозяин взял нас с нуля, чтобы построить: Redis автономный сервер -> Redis ведущий-ведомый репликации -> Redis-Сентинел высокой доступности. И постепенно строить кэш-серверов Redis высокой доступности.

Настройка Redis

1. Скачать и распаковать
сначала загрузить Redis Redis с официального сайта и распаковать, хозяин использует версию 4.0.2. В свою очередь , выполните следующую команду:

cd /usr/local/
wget http://download.redis.io/releases/redis-4.0.2.tar.gz
tar -zxvf redis-4.0.2.tar.gz

Если не Gcc зависимостей, соответствующие зависимости по установке

yum install -y gcc-c++ tcl

2. Обобщение и установить
после загрузки и декомпрессия будет завершена, установка пакета исходного кода для компиляции, путь домовладелец установка Redis является / USR / местные / Redis, студенты могут изменить свое собственное заявление: сделать установку PREFIX = путь , который вы хотите установить

cd /usr/local/redis-4.0.2/
make install PREFIX=/usr/local/redis

Копирование Redis команды, связанное с / USR / SBIN директории под землей, так что вы можете непосредственно выполнять эти команды, не писать полный путь


cd /usr/local/redis/bin/
sudo cp redis-cli  redis-server  redis-sentinel   /usr/sbin/

3. Создать профиль Redis

копия Redis после конфигурационного файла установки в директорию конфигурации / и т.д. /, redis.conf является Redis профиль, redis.conf в исходном каталоге Redis, порт 6379 по умолчанию.

cp /usr/local/redis-4.0.2/redis.conf  /etc/

Основные параметры файла конфигурации Redis ссылка синтаксического анализа

daemonize  no               #redis进程是否以守护进程的方式运行,yes为是,no为否(不以守护进程的方式运行会占用一个终端)
pidfile /var/run/redis.pid  #指定redis进程的PID文件存放位置
port 6379                   #redis进程的端口号
bind 127.0.0.1              #绑定的主机地址
timeout  300                #客户端闲置多长时间后关闭连接,默认此参数为0即关闭此功能
loglevel verbose            #redis日志级别,可用的级别有debug.verbose.notice.warning
logfile stdout              #log文件输出位置,如果进程以守护进程的方式运行,此处又将输出文件设置为stdout的话,就会将日志信息输出到/dev/null里面去了
databases 16                #设置数据库的数量,默认为0可以使用select <dbid>命令在连接上指定数据库id
save <seconds> <changes>    #指定在多少时间内刷新次数达到多少的时候会将数据同步到数据文件;
rdbcompression yes          #指定存储至本地数据库时是否压缩文件,默认为yes即启用存储;
dbfilename dump.db          #指定本地数据库文件名
dir ./                      #指定本地数据问就按存放位置;
slaveof <masterip> <masterport>     #指定当本机为slave服务时,设置master服务的IP地址及端口,在redis启动的时候他会自动跟master进行数据同步
masterauth <master-password>        #当master设置了密码保护时,slave服务连接master的密码;
requirepass footbared       #设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过AUTH<password>命令提供密码,默认关闭
maxclients 128              #设置同一时间最大客户连接数,默认无限制;redis可以同时连接的客户端数为redis程序可以打开的最大文件描述符,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
maxmemory<bytes>            #指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区
appendonly no               #指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
appendfilename appendonly.aof       #指定跟新日志文件名默认为appendonly.aof
appendfsync everysec         #指定更新日志的条件,有三个可选参数no:表示等操作系统进行数据缓存同步到磁盘(快),always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全), everysec:表示每秒同步一次(折衷,默认值);

3.1 Установка фонового для начала:
По умолчанию Redis является передним концом , чтобы начать, она должна быть сохранена в текущем окне, если вы используете Ctrl + C , чтобы выйти, то выход Redis также не рекомендуется.

vi /etc/redis.conf
Файл конфигурации Redis чтобы изменить старое значение на новое значение демон не демон да

3.2 Настройки доступа:
Redis по умолчанию позволяет доступ только к машине, но иногда нам нужно Redis удаленного доступа.


vi /etc/redis.conf

Найти связать конфигурацию линии, по умолчанию: # привязывать 127.0.0.1

# Удалить комментарии и читать: связать 0.0.0.0 Эта настройка позволяет включить все удаленный доступ. Если вы хотите назначить, чтобы ограничить доступ, вы можете установить соответствующий IP-адрес.

3.3 Конфигурация Redis Logging:
найти конфигурацию строки лога - файлы, по умолчанию: файл_журнал «», изменил файл_журнал /var/log/redis_6379.log

3.4 Установка Redis запроса пароля:
vi /etc/redis.conf

По умолчанию, чтобы найти эту строку комментировал: # requirepass foobared

Незакомментированный, то foobared изменить пароль, который вы хотите установить, например, я намерен: 123456, поэтому я изменил: requirepass «123456»

После изменения службы, чтобы перезапустить под

После того, как у Вас есть свой пароль, введите клиента, так что вы должны посетить: Redis-кли -h 127.0.0.1 -p 6379 -a 123456

4. Redis общие операции

4.1 запуска

/usr/local/redis/bin/redis-server /etc/redis.conf

4,2 Закрыть

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown

4.3 Проверьте, чтобы активировать ли

ps -ef | grep redis

4.4 клиент для входа

redis-cli

Закрыть Client 4.5

redis-cli shutdown

4.6 Параметры конфигурации при запуске

echo "/usr/local/redis/bin/redis-server /etc/redis.conf" >> /etc/rc.local

4.7 портов открытых брандмауэра
добавить правило: Iptables -I INPUT -p TCP -m TCP --dport 6379 -j ACCEPT
сохранить правило: сервис Iptables сохранить
рестарт IPTables: обслуживание Iptables перезагрузки

5. Redis зарегистрированного в качестве системной службы

, чтобы начать, приостанавливать и возобновлять скрипт для службы Redis в каталоге /etc/init.d:

мы /etc/init.d/redis

Сценарий выглядит следующим образом:

#!/bin/sh  
#  
# redis - this script starts and stops the redis-server daemon  
#  
# chkconfig:   - 85 15  
# description:  Redis is a persistent key-value database  
# processname: redis-server  
# config:      /usr/local/redis/bin/redis-server
# config:      /etc/redis.conf  
# Source function library.  
. /etc/rc.d/init.d/functions  
# Source networking configuration.  
. /etc/sysconfig/network  
# Check that networking is up.  
[ "$NETWORKING" = "no" ] && exit 0  
redis="/usr/local/redis/bin/redis-server" 
prog=$(basename $redis)  
REDIS_CONF_FILE="/etc/redis.conf" 
[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis  
lockfile=/var/lock/subsys/redis  
start() {  
    [ -x $redis ] || exit 5  
    [ -f $REDIS_CONF_FILE ] || exit 6  
    echo -n $"Starting $prog: "  
    daemon $redis $REDIS_CONF_FILE  
    retval=$?  
    echo  
    [ $retval -eq 0 ] && touch $lockfile  
    return $retval  
}  
stop() {  
    echo -n $"Stopping $prog: "  
    killproc $prog -QUIT  
    retval=$?  
    echo  
    [ $retval -eq 0 ] && rm -f $lockfile  
    return $retval  
}  
restart() {  
    stop  
    start  
}  
reload() {  
    echo -n $"Reloading $prog: "  
    killproc $redis -HUP  
    RETVAL=$?  
    echo  
}  
force_reload() {  
    restart  
}  
rh_status() {  
    status $prog  
}  
rh_status_q() {  
    rh_status >/dev/null 2>&1  
}  
case "$1" in  
    start)  
        rh_status_q && exit 0  
        $1  
        ;;  
    stop)  
        rh_status_q || exit 0  
        $1  
        ;;  
    restart|configtest)  
        $1  
        ;;  
    reload)  
        rh_status_q || exit 7  
        $1  
        ;;  
    force-reload)  
        force_reload  
        ;;  
    status)  
        rh_status  
        ;;  
    condrestart|try-restart)  
        rh_status_q || exit 0  
    ;;  
    *)  
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart| reload|orce-reload}"  
        exit 2  
esac

Учитывая разрешение сценария


chmod 755 /etc/init.d/redis

Запуск, остановка и перезапуск:

service redis start
service redis stop
service redis restart

До сих пор, Redis автономный сервер был создан завершен, давайте рассмотрим, как построить ведущий-ведомый архитектуры.

Redis подчиненной архитектуры здание

1. Redis-сервер Описание

172.16.2.185:6379 主

172.16.2.181:6379 从

2. Redis конфигурации архитектура ведущий-ведомый

  • Redis редактировать файл конфигурации из машины, найти 210 строки (возможно), эта строка должна быть комментарий по умолчанию: # slaveof <MasterIP> <masterport>
  • Нам нужно, чтобы удалить комментарий, и заполнить свой собственный IP-адрес и порт хоста, например: slaveof 172.16.2.185 6379, если хост установить пароль, вы также должны найти masterauth <мастер-пароль> эту строку, удалить комментарии, вместо masterauth хозяина пароль.
  • После настройки, перезагрузите машину из сервиса Redis
  • После завершения перезагрузки, введите хост Redis-Cli под Redis-кли состояния -h 127.0.0.1 -p 6379 -a 123456, введите: Репликация INFO может запросить текущий хост Redis в какой роли, который был подключен к хост-машине из ,

Информация о хостах 172.16.2.185

# Replication
role:master
connected_slaves:1
slave0:ip=172.16.2.181,port=6379,state=online,offset=28,lag=1
master_replid:625ae9f362643da5337835beaeabfdca426198c7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:28
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:28

Подчиненная Информация 172.16.2.181

# Replication
role:slave
master_host:172.16.2.185
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:210
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:625ae9f362643da5337835beaeabfdca426198c7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:210
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:210
  • На этом этапе конфигурации ведущий-ведомый был завершен, наш тест: Мы ввести REDIS-CLI состояние хоста, а затем установить значение, например: установка MyBlog YouMeek.com
  • Мы перешли в состоянии Redis-кли из машины, просто получить значение из набора, чтобы увидеть, если есть: получить MyBlog, в это время, мы можем обнаружить, что можно добраться до значения.

3. Redis ведущий-ведомый Краткое описание архитектуры

  • Обратите внимание, что: из библиотеки не имеет возможности записывать данные, или будет ошибка. Из библиотеки только для чтения возможностей.
  • Мастер-ведомая архитектура преимущество: В дополнении к снижению давления соединений первичных базы данных, и может отключить основную функция библиотеки сохраняется, стойкие функции из библиотеки, подлежащая обработке.
  • Первую информацию о конфигурации из библиотеки соединяется с основным резервуаром, вторая информация о конфигурации соединения из библиотеки подключается за первой из библиотеки, из библиотеки, если есть третий случай, мы можем поставить третий информация о конфигурации из библиотеки даже из библиотеки на второй, и так далее.

Redis Сентинел высокая доступность архитектуры здание

1. автоматическое переключение

  • Хотя основная резервная копия сделана из Redis конфигурации ткани, она выглядит идеально. Но поскольку Redis поддерживает только резервное копирование репликации ведущий-ведомый (мастер-мастер репликации не поддерживается), когда главный Redis висит от Redis может обеспечить только чтение услуг не может предоставить письменные услуги. Таким образом, я должен был найти способ, когда главный Redis повесил трубку, пусть Redis обновить становится основной Redis.

  • Для этого требуется автоматическое переключение, Redis Сентинел с этой функцией, когда основной Redis не может предоставлять услуги, Redis Страж может быть повышен с Redis Redis основе, а также другие конфигурируемые от Redis, позволить им использовать новый основной Redis резервное копирование.

Примечание: Рекомендуется, по крайней мере три структуры сервера Redis Стража, но хозяин ленив, следующий случай использования только два сервера.

Redis Страж обеспечивает следующие функции:

  1. Мониторинг: Страж постоянно проверяет, является ли ведущим и ведомым нормальной работы.
  2. Извещение: Когда экземпляр мониторинга проблемы станции Redis, вы можете сообщить об этом системному администратору с помощью API и других приложений.
  3. Автоматический переход на другой ресурс: если мастер не работает должным образом, Страж может инициировать процесс отказоустойчивый, будет рабом модернизированы, чтобы стать мастером, а другой ведомый перенастроить использовать новый мастер, и приложение использует новый адрес уведомлений сервера Redis.
  4. Информация о конфигурации: Страж Redis в качестве авторитетного источника для клиента найденного: запрос на соединение клиента Сентинел по адресу текущего мастера надежного. В случае возникновения неисправности, Стража сообщает, что новый адрес.

По умолчанию, каждый узел Сентинел передает частоту раз в секунду команды PING Redis сторожевого узла и других узлов, и определяет , является ли узел в ответе узлов.
Если вниз после-millisecondes мс, действительный ответ не будет получен, то узел будет определяться отсутствует субъективная.

Если узел является мастером, узел будет задан часовой Страж-мастер-вниз по-адр команда для другого узла дозорного определяет, что узел, если узел <Кворум> мастер-число превышает определение не доступно, то мастер определяет, что узел будет сторожевой объективным в автономном режим.

На этот раз, Страж будет консультироваться друг с избирает лидер Страж, на сбое главного узла управляется ведущим Sentinel.

Отказоустойчивого включает в себя следующие три операции:

  1. Во всех подчиненных серверах, выбрать раб, и преобразовать его в мастер.
  2. Пусть другие подчиненные сервера вместо копирования нового хозяина.
  3. Старый мастер к новому рабовладельца, так что, когда старый мастер назад в Интернете, он стал рабом нового хозяина.

2. настроить Redis Стража архитектуру высокой доступности

здесь два сервера, откройте Redis-сервер и Redis-дозорные службы на каждом сервере.

Redis-сервер Описание

172.16.2.185:6379 主

172.16.2.181:6379 从

Redis-дозорный Описание

172.16.2.185:26379

172.16.2.181:26379

2.1 Создание файла конфигурации Redis

, если сделать автоматический переход на другой ресурс, то рекомендуется , чтобы все redis.conf установлены masterauth, потому что отказ будет автоматически переписать ведущий-ведомый, а именно slaveof, не писать masterauth автоматически. Если Redis не установлен пароль, вы можете проигнорировать.

был установлен Redis выше программы, мы должны увеличить конфигурации Redis-часовому скопирует Redis-дозорный конфигурационный файл в каталоге конфигурации системы / и т.д. / вниз, sentinel.conf является Redis-часовой профиль, дозорный .conf в исходном каталоге Redis.


cp /usr/local/redis-4.0.2/sentinel.conf  /etc/

Sentinel.conf изменить файл конфигурации следующим образом:

vi /etc/sentinel.conf

protected-mode no
sentinel monitor mymaster 172.16.2.185 6379 2
# redis在搭建时设置了密码,所以要进行密码配置
sentinel auth-pass mymaster “123456“
#5秒内mymaster没有响应,就认为SDOWN
sentinel down-after-milliseconds mymaster 5000  
sentinel failover-timeout  mymaster 15000

В конечной конфигурации плюс

logfile /var/log/sentinel.log
pidfile  /var/run/sentinel.pid
daemonize yes

Профиль Описание:

1.port: Дозорная служба работает текущий порт

2.dir: во время выполнения временных файлов папки Стража службы

3.sentinel монитор master001 192.168.110.10163792: ​​Страж, чтобы контролировать первичный REDIS экземпляр с именем master001, IP-адрес первичного примера адрес хоста 192.168.110.101, номер порта 6379, и отказ первичного экземпляра определено, что по меньшей мере, Дозорный согласился двух процессов, при условии, что согласованное число несоблюдения Стража, автоматическое переключение не будет выполняться

4.sentinel вниз после миллисекунд master001 30000: Sentinel, который определяет количество миллисекунд требуются экземпляр Redis истек. Примеры этого времени не превышены, когда PING возвращается, либо непосредственно возвращает ошибку, то этот пример Сентинел отмечен субъективный автономный режим. Только один экземпляр процесс Сентинел отмечен субъективные автономный не обязательно приведет к автоматическому отказоустойчивому экземпляру: только после того, как достаточное количества Стража будет помечено как субъективная автономным например, экземпляр не будет помечен как цель с конвейером, который когда автоматическое переключение будет выполняться

5.sentinel параллельно синхронизируется master001 1: указанная при выполнении восстановления после сбоя, от максимального количества экземпляров Redis нового мастера синхронизации, например, от меньшего этого числа на дополнительном Redis например, при синхронизации времени длина, тем дольше время, необходимое для завершения восстановления после сбоя

6.sentinel отказоустойчивого тайм-аута master001 180000: Неспособность завершить операции восстановления после сбоя в течение этого времени (мс), считается сбой отказоустойчивого

7.sentinel уведомление-скрипт: Определяет обнаруженный экземпляр сторожевого REDIS примеров контрольных точек ненормальности, сценарий вызывает полицию. Необязательные элементы конфигурации, но очень общий

2.2 открытые порты брандмауэра


添加规则:iptables -I INPUT -p tcp -m tcp --dport 26379 -j ACCEPT
保存规则:service iptables save
重启 iptables:service iptables restart

2.3 Запуск Redis-дозорный

redis-sentinel  /etc/sentinel.conf

Renyiyitai машина может просмотреть информацию, относящуюся к служебной

redis-cli -h 127.0.0.1 -p 26379

INFO sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=172.16.2.185:6379,slaves=1,sentinels=2

3. Тест автоматического перехода на другой

+3,1 остановить главный Redis

redis-cli -h 172.16.2.185 -p 6379 -a 123456 shutdown

3.2 Вид мониторинг состояния Redis-часовой

# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=172.16.2.181:6379,slaves=1,sentinels=2

Найдено из библиотеки для повышения основной библиотеки.

3.3 Соображения

  • Если после выключения мастер, Сентинел отображает достаточное количество sdown, не odown или примерочных отказоустойчивого, проверьте правильность конфигурации пароля и т.д.
  • Если остановился мастер, пытаясь переключиться, я обнаружил, что журнал появляются отказоустойчивого-прерывания, не избран, делится на два вида ситуаций были решены:

Если экземпляр Redis не настроен

protected-mode yes
bind 172.16.2.185

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

REDIS экземпляр, если сконфигурирован


protected-mode yes
bind 172.16.2.185

Затем добавить файл конфигурации Стража


protected-mode yes
bind 172.16.2.185

На данный момент, Redis программа высокой доступности были завершены структуры.

VIP виртуальный IP обеспечивает высокую доступность внешнего

1. Обзора обычного случая
необходимости IP -адрес и порт, но клиентская программа Redis-сервер отказоустойчивой (например, Java программа) Redis соединение, основной Redis изменяется, адрес IP, также изменяется. Как клиенты воспринимают текущий адрес программы Ip и порт мастера Redis это? Redis-дозорный предоставляет интерфейс для запроса любых из Стража, SENTINEL передачи получить мастер-адр-, по -name <имя мастера> можно получить REDIS основного текущего IP и порт.

Перед каждым подключением клиента Redis, Xianxiang сторожевого посылает запрос на получение основного Redis IP-адрес и порт, а затем, связанный с возвратом Redis IP и портом.

Недостатком этого метода является то, очевидно, что Redis каждая операция требует, по меньшей мере, два передает запрос на соединение, Sentinel, первый запрос, второй запрос Redis.

Лучший подход заключается в использовании VIP, которые, конечно, есть определенные требования к конфигурации среды, такие как Redis построить на облаке сервера Али, не может поддерживать VIP.

VIP схема, система внешнего Redis всегда тот же IP-адрес, когда Redis отказоустойчивый, что вам нужно сделать, это перейти от предыдущего сервера VIP Redis к новому хозяину теперь сервер Redis.

Например: текущая система в главном Redis Redis IP-адресе является 172.16.2.185, то VIP (172.16.2.250) пункт 172.16.2.185, адрес клиента Redis соединение с VIP (172.16.2.250), он на самом деле, подключенными к текущему первичному Redis , таким образом избегая запрос на передачу к Sentinel.

Когда главный Redis вниз, отказоустойчивый, Redis 172.16.2.181 на этом сервере с первичным, то VIP (172.16.2.250) 172.16.2.181 точки, так что клиент не должен изменять любой код, подключен 172.16 .2.181 это главный Redis.

2. Дрейф VIP достичь Redis отказоустойчивости

Так что теперь вопрос в том, как Redis во время перехода на другой ресурс, VIP будет дрейфовать на новый мастер - Redis сервер.

Здесь может быть использован REDIS дозорных параметр клиента-RECONFIG-скрипт, этот параметр настроен для выполнения сценария, Сентинели сделать время отказоустойчивого будет выполнять сценарий, и прошло шесть параметров <мастер-имя>, <роль>, <состояние>, <из-ф>, <из порта>, <к-ф>, <до порта>, где <к-ф> является IP-адресом нового хозяина Redis, вы можете сделать VIP бездрейфовых работы в этом сценарии.

sentinel client-reconfig-script mymaster /opt/notify_mymaster.sh

Изменение два сервера Redis-дозорный профиль /etc/sentinel.conf, увеличить верхнюю линию. Затем создается в / директории файл notify_mymaster.sh сценария / OPT, скрипт делает VIP бездрейфовый операцию следующим образом:

vi /opt/notify_mymaster.sh
#!/bin/bash
echo "File Name: $0"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"

MASTER_IP=${6}  #第六个参数是新主redis的ip地址
LOCAL_IP='172.16.2.185'  #当前服务器IP,主机172.16.2.185,从机172.16.2.181
VIP='172.16.2.250'
NETMASK='24'
INTERFACE='eth1'
if [ ${MASTER_IP} = ${LOCAL_IP} ]; then
     sudo /sbin/ip addr add ${VIP}/${NETMASK} dev ${INTERFACE}  #将VIP绑定到该服务器上
     sudo /sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE}
    exit 0
else
     sudo /sbin/ip addr del ${VIP}/${NETMASK} dev ${INTERFACE}   #将VIP从该服务器上删除
   exit 0
fi
exit 1  #如果返回1,sentinel会一直执行这个脚本

Учитывая разрешение сценария

chmod 755 /opt/notify_mymaster.sh

Redis теперь текущий мастер 172.16.2.185, необходимо вручную привязать к VIP на сервере.

/sbin/ip  addr add 172.16.2.250/24 dev eth1
/sbin/arping -q   -c 3 -A 172.16.2.250 -I eth1

Поскольку VIP связывать только лишь одну из этих машин, предлагается изменить, чтобы связать 0.0.0.0 добавлены в redis.conf

vi /etc/redis.conf

Настройка привязки 0.0.0.0

Поскольку VIP связывать только лишь одну из этих машин, предлагается изменить, чтобы связать 0.0.0.0 добавлены в sentinel.conf

vi /etc/sentinel.conf

Настройка привязки 0.0.0.0

Перезапуск Redis

service redis restart`

Перезапуск Дозорный

redis-sentinel /etc/sentinel.conf

Он следовал за нами на другой машине 172.16.2.181, через VIP доступ к хосту

redis-cli -h 172.16.2.250 -p 6379 -a 123456 INFO replication

Может быть нормальное общение, информация выглядит следующим образом:

# Replication
role:master
connected_slaves:1
slave0:ip=172.16.2.181,port=6379,state=online,offset=0,lag=0
master_replid:325b0bccab611d329d9c2cd2c35a1fe3c01ae196
master_replid2:c1f7a7d17d2c35575a34b00eb10c8abf32df2243
master_repl_offset:22246293
second_repl_offset:22241024
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:22237293
repl_backlog_histlen:9001

хост Access Дозорный

redis-cli -h 172.16.2.250 -p 26379 INFO sentinel

Может быть нормальное общение, информация выглядит следующим образом:

# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=172.16.2.185:6379,slaves=1,sentinels=3

Ниже от хозяина сервиса Redis, чтобы увидеть, если VIP дрейф на другой сервер.

redis-cli -h 172.16.2.185 -p 6379 -a 123456 shutdown

Проверьте, является ли переключатель

redis-cli -h 172.16.2.250 -p 26379 INFO sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=172.16.2.181:6379,slaves=1,sentinels=3

Страж найти опросив раб 172.16.2.181 способствовал мастеру.

Redis подключение через доступ к VIP

redis-cli -h 172.16.2.250 -p 6379 -a 123456 INFO replication
# Replication
role:master
connected_slaves:0
master_replid:cab30a4083f35652053ffcd099d70b9aaf7a80f3
master_replid2:3da856dd33cce4bedd54926df6797b410f1ab9e8
master_repl_offset:74657
second_repl_offset:36065
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:74657

Из приведенной выше информации показывает, VIP дрейф был успешным. Поздравляю, удачи, курица ночь.

резюме

До сих пор, высокая доступность Redis службы кэширования была создана завершена, а затем немного позже статья научит вас, как соединить связанные операции через JAVA Redis. Как Redis кластера кластерных решений, таких как свободный и затем построить, а затем разделить вместе.

рекомендация

отblog.51cto.com/14541438/2439931