三台机器分布

192.168.189.129  //  master的角色

192.168.189.130  //  slave1的角色

192.168.189.131  //  salve2的角色

三台服务器安装redis

1
2
3
4
5
6
cd /usr/local/src
 
tar zxf redis-5.0.6.tar.gz
cd redis-5.0.6
make && make isntall
cp redis.conf /etc/

  

编译主redis的配置文件

1
2
3
4
5
vim /etc/redis.conf
---------------------------------------------
bind 0.0.0.0
daemonize yes  //后台运行
---------------------------------------------

  

编译从redis两台机器的配置文件

1
2
3
bind 0.0.0.0
daemonize yes
replicaof 192.168.18.140 6379  //这条是注释的在原配置文件中可以自己解开注释  写的是主的redis的IP和地址

  

redis服务开启

1
redis-server /etc/redis.conf
1
2
3
4
5
[root@localhost redis-5.0.5]# redis-cli  //执行这条命令可以看看到身份 是master  有两个从的主机
127.0.0.1:6379> info
# Replication
role:master
connected_slaves:2   //从的redis的个数

  

从机器:

1
2
[root@localhost ~]# redis-cli
127.0.0.1:6379> info
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Replication
role:slave    #角色为从
master_host:127.0.0.1
master_port:6379  #端口
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:12431
master_link_down_since_seconds:254
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:c19f164c73069fbf600c31c999ee3d67363c946e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:12431
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:12431

  在主redis中写入数据, 在从的redis查看是否可以获得

1
2
3
4
5
6
在主写入数据
127.0.0.1:6379> set name zhou
OK
在从上可以获取到
127.0.0.1:6379> get name
"zhou"

  

开启redis的哨兵模式

接下来的操作可以完成redis的哨兵模式 哨兵模式的完成实在redis的主从基础上完成的。

三台redis都做如下操作

1
cp /usr/local/src/redis-5.0.6/sentinel.conf /etc/
1
2
3
4
5
vim /etc/sentinel.conf
---------------------------------------------------------
protected-mode no
sentinel monitor mymaster 192.168.189.130 6379 2
----------------------------------------------------------
1
redis-server /etc/sentinel.conf --sentinel #哨兵模式的开启命令

  测试哨兵

关闭redis主的服务器,可以看到从机器的选举过程表示成功

效果演示:

redis操作命令总结:

1
2
3
4
5
redis-server /etc/redis.conf  #开启redis服务
 
redis-cli    #进入redis进行存储数据或读取数据
 
redis-server /etc/sentinel.conf --sentinel    #哨兵的枚举与查看
12-17 06:45