准备两台Centos的虚拟机
分别两台都上传redis-3.2.4.tar
[[email protected] server]# rz
进行编译 需要gcc环境
[[email protected] redis-3.2.4]# yum -y install gcc
[[email protected] redis-3.2.4]# make
[[email protected] redis-3.2.4]# make install
给主机配置
[[email protected] redis-3.2.4]# mkdir redis_cluster
[[email protected] redis-3.2.4]# cd redis_cluster/
[[email protected] redis_cluster]# mkdir 6379 6380
[[email protected] redis_cluster]# cp …/redis.conf 6379
[[email protected] redis_cluster]# cp …/redis.conf 6380
[[email protected] redis_cluster]# cp …/sentinel.conf 6379
[[email protected] redis_cluster]# cd 6379/
[[email protected] 6379]# vim redis.conf
进入6380目录进行修改
[[email protected] 6379]# cd …
[[email protected] redis_cluster]# cd 6380/
[[email protected] 6380]# vim redis.conf
修改从sentinel配置文件
[[email protected] 6380]# vim sentinel.conf
设置第二台主机
进行编译 需要gcc环境
[[email protected] redis-3.2.4]# yum -y install gcc
[[email protected] redis-3.2.4]# make
[[email protected] redis-3.2.4]# make install
给副机配置
[[email protected] redis-3.2.4]# mkdir redis_cluster
[[email protected] redis-3.2.4]# cd redis_cluster/
[[email protected] redis_cluster]# mkdir 6379 6380
[[email protected] redis_cluster]# cp …/redis.conf 6379
[[email protected] redis_cluster]# cp …/redis.conf 6380
[[email protected] redis_cluster]# cp …/sentinel.conf 6379
[[email protected] redis_cluster]# cd 6379/
[[email protected] 6379]# vim redis.conf
进入6380目录进行修改
修改从sentinel配置文件
开启主从所有服务和哨兵
[[email protected] redis_cluster]# cd 6379/
[[email protected] 6379]# redis-server redis.conf
[[email protected] 6379]# cd …
[[email protected] redis_cluster]# cd 6380/
[[email protected] 6380]# redis-server redis.conf
[[email protected] 6380]# redis-sentinel sentinel.conf
验证
[[email protected] 6380]# redis -cli -h 192.168.1.111
[[email protected] 6380]# redis-cli -h 192.168.1.111
192.168.1.111:6379> info replication
#Replication
role:master
connected_slaves:3
slave0:ip=192.168.1.143,port=6379,state=online,offset=591404,lag=1
slave1:ip=192.168.1.143,port=6380,state=online,offset=591404,lag=1
slave2:ip=192.168.1.111,port=6380,state=online,offset=591404,lag=1
master_repl_offset:591404
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:591403
192.168.1.111:6379> exit
先杀掉主机
[[email protected] 6380]# ps -aux |grep redis
root 5729 0.1 0.5 138968 9724 ? Ssl 19:00 0:06 redis-server 192.168.1.111:6379
root 5765 0.1 0.4 136920 7728 ? Ssl 19:03 0:08 redis-sentinel *:26379 [sentinel]
root 9593 0.1 0.4 136920 7592 ? Ssl 20:30 0:00 redis-server 192.168.1.111:6380
root 9630 0.0 0.0 112648 952 pts/0 S+ 20:33 0:00 grep --color=auto redis
[[email protected] 6380]# kill 5729
[[email protected] 6380]# kill 5729
-bash: kill: (5729) - No such process
进行验证
[[email protected] 6379]# redis-cli -h 192.168.1.143
192.168.1.143:6379> info replication
#Replication
role:master
connected_slaves:2
slave0:ip=192.168.1.111,port=6380,state=online,offset=5038,lag=0
slave1:ip=192.168.1.143,port=6380,state=online,offset=5038,lag=0
master_repl_offset:5038
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:5037
192.168.1.143:6379> exit
这时发现第二条已经接管了
杀点备主
[[email protected] 6379]# ps -aux |grep redis
root 5497 0.1 0.5 138968 9740 ? Ssl 20:22 0:01 redis-server 192.168.1.143:6380
root 5501 0.1 0.4 136920 7732 ? Ssl 20:23 0:02 redis-sentinel *:26379 [sentinel]
root 5638 0.1 0.4 136920 7592 ? Ssl 20:44 0:00 redis-server 192.168.1.143:6379
root 5642 0.0 0.0 112648 960 pts/0 S+ 20:44 0:00 grep --color=auto redis
[[email protected] 6379]# kill 5638
[[email protected] 6379]# kill 5638
-bash: kill: (5638) - No such process
[[email protected] 6379]# redis-cli -h 192.168.1.111 -p 6380
192.168.1.111:6380> info replication
#Replication
role:master
connected_slaves:2
slave0:ip=192.168.1.143,port=6380,state=online,offset=68177,lag=0
slave1:ip=192.168.1.111,port=6379,state=online,offset=68177,lag=0
master_repl_offset:68318
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:68317
验证成功