soul颠覆了执着

导航

redis多实例和高可用

实验:多实例节点 10.220.5.65(三个实例)

           高可用节点:10.220.5.67

创建目录,将三个实例文件都放在这个目录中

[root@65 ~]# yum install redis -y
[root@65~]# mkdir /redis/{6379,6380,6381} -pv

查看目录

[root@65 ~]# ls /redis
6379  6380  6381 <<<三个实例所对应的端口号,为了方便理解这里每个文件名和对应的端口号一致

将/etc/redis.conf文件复制到每一个目录下

[root@65DRslave 6381]# cp /etc/redis.conf /redis/6379
[root@65DRslave 6381]# cp /etc/redis.conf /redis/63780
[root@65DRslave 6381]# cp /etc/redis.conf /redis/63781

修改每一个配置文件

[root@65DRslave 6381]# cp /etc/redis.conf /redis/6379
 80 protected-mode yes
84 port 6379
 128 daemonize yes <<<启用后台运行模式
 150 pidfile /redis/6379/redis_6379.pid
 163 logfile /redis/6379/redis.log <<<日志文件
200 #   save ""
 201 
 202 save 900 1
 203 save 300 10
 204 save 60 10000
247 dir /redis/6379

同理剩下两个配置文件和上边类似,只需该对应端口即可

启动实例

[root@65 ~]# redis-server /redis/6379/redis.conf 
[root@65 ~]# redis-server /redis/6380/redis.conf 
[root@65~]# redis-server /redis/6381/redis.conf 
[root@65DRslave ~]# ss -tnl
State       Recv-Q Send-Q          Local Address:Port                         Peer Address:Port              
LISTEN      12     128                         *:6379                                    *:*                  
LISTEN      0      128               10.220.5.65:6380                                    *:*                  
LISTEN      0      128               10.220.5.65:6381                                    *:*         

打开多个终端,分别登陆实例

[root@65 ~]# redis-cli -h 10.220.5.65 -p 6379
10.220.5.65:6379> 
[root@65 ~]# redis-cli -h 10.220.5.65 -p 6380
10.220.5.65:6380> 
[root@65 ~]# redis-cli -h 10.220.5.65 -p 6381
10.220.5.65:6381> 
主从复制,让6381作为主,6379 和6380作为从

10.220.5.65:6380> slaveof 10.220.5.65 6381
OK
10.220.5.65:6379> slaveof 10.220.5.65 6381
OK
在主端创建数据,在从节点查看是否被复制了过来
10.220.5.65:6381>  set age 29
OK                                     <<<主端
10.220.5.65:6379> get age
"29"                                  <<<从端,说明已经复制
10.220.5.65:6380> get age
"29"                                  <<<从端,说明已经复制

主从复制已经做好,下面做redis的高可用

redis的高可用是用redis-sentinel,默认在redis中,需要修改配置文件

[root@67 ~]# vim /etc/redis-sentinel.conf 
17 protected-mode no
98 sentinel monitor mymaster 10.220.5.65 6381 1
131 sentinel config-epoch mymaster 1

启动redis-sentinel

[root@67 ~]#  systemctl start redis-sentinel   <<<端口号为 26379
[root@67 ~]# ss -tnl
State       Recv-Q Send-Q          Local Address:Port                         Peer Address:Port              
LISTEN      0      128                         *:26379                                   *:*                  
LISTEN      0      128                         *:22                                      *:*                  
LISTEN      0      128                        :::26379                                  :::*                  
LISTEN      0      128                        :::22                                     :::*    

 登录redistribute-sentinel,并查看主从节点信息

[root@67 ~]# redis-cli -h 10.220.5.67 -p 26379
10.220.5.67:26379>sentinel masters  <<<主节点信息

1) 1) "name"
2) "mymaster"
3) "ip"
4) "10.220.5.65"
5) "port"
6) "6381" 
.......

10.220.5.67:26379>sentinel slaves master <<<从节点信息

1) 1) "name"
2) "10.220.5.65:6380"
3) "ip"
4) "10.220.5.65"
5) "port"
6) "6380"

....

2) 1) "name"
2) "10.220.5.65:6379"
3) "ip"
4) "10.220.5.65"
5) "port"
6) "6379"

....

 将主节点停掉,再看效果

[root@65DRslave ~]# ps aux |grep redis
redis 1169 0.3 0.7 142952 7320 ? Ssl 16:07 0:11 /usr/bin/redis-server 10.220.5.65:6379
root 1255 0.0 0.0 107988 612 pts/2 T 16:12 0:00 tail -f /redis/6381/redis.log
root 1288 0.3 0.7 142952 7504 ? Ssl 16:18 0:10 redis-server 10.220.5.65:6381
root 1298 0.0 0.5 22128 5212 pts/1 S+ 16:19 0:00 redis-cli -h 10.220.5.65 -p 6379
root 1338 0.3 0.5 142952 5440 ? Ssl 17:04 0:00 redis-server 10.220.5.65:6380
root 1344 0.0 0.5 22124 5128 pts/0 S+ 17:04 0:00 redis-cli -h 10.220.5.65 -p 6380
root 1346 0.0 0.0 112704 956 pts/2 R+ 17:04 0:00 grep --color=auto redis
[root@65DRslave ~]# kill -9 1288

在redis-sentinel端再次查看

10.220.5.67:26379> sentinel masters
1)  1) "name"
    2) "mymaster"
    3) "ip"
    4) "10.220.5.65"
    5) "port"
    6) "6379"  <<<此次主节点变成了 6379 ,这就是redis的高可用

查看从节点信息

10.220.5.67:26379> sentinel slaves mymaster
1)  1) "name"
    2) "10.220.5.65:6381"
    3) "ip"
    4) "10.220.5.65"
    5) "port"
    6) "6381" 
10) "s_down,slave,disconnected" <<<6381停掉后变成了从,状态是未连接
2) 1) "name" 2) "10.220.5.65:6380" 3) "ip" 4) "10.220.5.65" 5) "port" 6) "6380"

 

















posted on 2018-11-15 09:09  soul颠覆了执着  阅读(858)  评论(0编辑  收藏  举报