Redis主从部署
两台一样的操作步骤
tar xf redis-5.0.7.tar.gz -C /opt/iotplatform
cd /opt/iotplatform/redis-5.0.7/src
yum -y install gcc
make distclean && make
修改主的配置文件
vim /opt/iotplatform/redis-5.0.7/redis.conf
# bind 127.0.0.1 ::1
bind 0.0.0.0 使不同IP也能连上此节点,否则会报错:Error condition on socket for SYNC: Connection refused
daemonize no 如果改成yes,则表示redis服务后台运行,这里保持默认
#protected-mode yes
protected-mode no 关闭保护模式,使从节点能连接上此主节点
pidfile /var/run/redis_6379.pid 指定你自己的pid数据库存储路径
logfile /home/program/redis-4.0.13/logfile_6379.log 指定你自己的log日志存放路径
修改从的配置文件
vim /opt/iotplatform/redis-5.0.7/redis.conf
# bind 127.0.0.1 ::1
bind 0.0.0.0 使不同IP也能连上此节点,否则会报错:Error condition on socket for SYNC: Connection refused
daemonize no 如果改成yes,则表示redis服务后台运行,这里保持默认
#protected-mode yes
protected-mode no 关闭保护模式,使从节点能连接上此主节点
pidfile /var/run/redis_6379.pid 指定你自己的pid数据库存储路径
logfile /home/program/redis-4.0.13/logfile_6379.log 指定你自己的log日志存放路径
slaveof node1.iotplatform.com 6379 配置上master主节点的信息,配置自己为slave从节点
查看是否配置成功
从:
# Replication
role:slave
master_host:192.168.12.235
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
主:
# Replication
role:master
connected_slaves:0
master_replid:5157ab6e18fdb0de60afafdc91d5ba7dd20fb2ca
master_replid2:8eae889c03eeae594bcff15e8416bd0747d89968
master_repl_offset:46452
second_repl_offset:44142
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:23760
repl_backlog_histlen:22693
启动redis
./redis-server ../redis.conf
配置redis哨兵
主从配置一样 ,修改一下配置
mkdir /opt/iotplatform/redis-5.0.7/redis-sentinel
vim /opt/iotplatform/redis-5.0.7/sentinel.conf
----------------------------------------------------------------------------
#sentinel端口
port 26379
#工作路径,注意路径不要和主重复
dir "/opt/iotplatform/redis-5.0.7/redis-sentinel"
# 守护进程模式
daemonize yes
#关闭保护模式
protected-mode no
# 指明日志文件名
logfile "/opt/iotplatform/redis-5.0.7/sentinel.log"
#哨兵监控的master,主从配置一样,这里只用输入redis主节点的ip/port和法定人数。
sentinel myid c186cf19d1e2533f21b650cca31fccabaa266293 //这一行由启动成功的哨兵自己写入
# master或slave多长时间(默认30秒)不能使用后标记为s_down状态。
sentinel deny-scripts-reconfig yes
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel monitor mymaster node1.iotplatform.com 2 //监控master节点所在的IP端口,并设置2个sentinel哨兵监控到master节点挂掉才能启动故障转移,把其中一台slave升级为master,如果旧master恢复正常,也加入slave。
---------------------------------------------------------------------------
# 启动redis哨兵
src/redis-sentinel ./sentinel.conf
# 查看是否启动成功
ps -ef |grep redis