目录node
官网地址:http://redisdoc.com/ redis-cli info #查看redis数据库信息 redis-cli info replication #查看redis的复制受权信息 redis-cli info sentinel #查看redis的哨兵信息
思路:linux
redis主从 一主两从的方案
1.环境准备,准备一主两从的redis架构redis
redis-6379.conf数据库
port 6379 daemonize yes logfile "6379.log" dbfilename "dump-6379.rdb" dir "/opt/redis/6379/"
redis-6380.conf架构
port 6380 daemonize yes logfile "6380.log" dbfilename "dump-6380.rdb" dir "/opt/redis/6380/" slaveof 127.0.0.1 6379
redis-6381.confui
port 6381 daemonize yes logfile "6381.log" dbfilename "dump-6381.rdb" dir "/opt/redis/6381/" slaveof 127.0.0.1 6379
2.准备三个数据文件夹code
mkdir -p /opt/redis/{6379,6380,6381}
3。分别启动三个数据库server
[root@master sbredis]# redis-server redis-6379.conf [root@master sbredis]# redis-server redis-6380.conf [root@master sbredis]# redis-server redis-6381.conf
4.检测主从状态进程
redis-cli -p 6379 info replication redis-cli -p 6380 info replication redis-cli -p 6381 info replication
5.准备三个redis哨兵,进行检测主从状态ip
准备三个哨兵的配置文件
redis-26379.conf
// Sentinel节点的端口 port 26379 dir /var/redis/data/ logfile "26379.log" // 当前Sentinel节点监控 192.168.119.10:6379 这个主节点 // 2表明判断主节点失败至少须要2个Sentinel节点节点赞成 // mymaster是主节点的别名 sentinel monitor mymaster 192.168.119.10 6379 2 //每一个Sentinel节点都要按期PING命令来判断Redis数据节点和其他Sentinel节点是否可达,若是超过30000毫秒30s且没有回复,则断定不可达 sentinel down-after-milliseconds mymaster 30000 //当Sentinel节点集合对主节点故障断定达成一致时,Sentinel领导者节点会作故障转移操做,选出新的主节点, 原来的从节点会向新的主节点发起复制操做,限制每次向新的主节点发起复制操做的从节点个数为1 sentinel parallel-syncs mymaster 1 //故障转移超时时间为180000毫秒 sentinel failover-timeout mymaster 180000
redis-26380.conf
port 7000 daemonize yes dir "/opt/data" logfile "7000.log" dbfilename "dump-7000.rdb" cluster-enabled yes cluster-config-file nodes-7000.conf cluster-require-full-coverage no
redis-26381.conf
三个配置文件,仅仅是端口的不一样,经过命令快速生成配置文件
[root@master sbredis]# sed "s/26379/26380/g" redis-26379.conf > redis-26380.conf [root@master sbredis]# sed "s/26379/26381/g" redis-26379.conf > redis-26381.conf
6.分别启动三个哨兵
[root@master sbredis]# redis-sentinel redis-26379.conf [root@master sbredis]# redis-sentinel redis-26380.conf [root@master sbredis]# redis-sentinel redis-26381.conf
7.检测哨兵,主从状态
redis-cli -p 26379 info sentinel
看到以下信息,就和我同样了
[root@master sbredis]# redis-cli -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=s17ms,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
8.测验,干掉master redis,是否自动切换
ps -ef|grep redis kill 进程 ..
9.再次启动redis 6379 查看它是否加入 主从集群
redis-server redis-6379.conf
OK~