Redis-集群主从复制,读写分离;哨兵模式;消息订阅发布

Posted MinggeQingchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis-集群主从复制,读写分离;哨兵模式;消息订阅发布相关的知识,希望对你有一定的参考价值。

一、Redis集群、主从复制,读写分离

redis的主从复制:主少从多、主写从读、读写分离、主写同步复制到从

搭建一主二从redis集群

1、搭建三台redis服务:使用一个redis模拟三台redis服务

提供三分redis配置文件:redis6379.conf、redis6380.conf、redis6381.conf

修改三份配置文件:以redis6379.conf为例

bind 127.0.0.1

port 6379

pidfile /var/run/redis_6379.pid

logfile "6379.log"

dbfilename dump6379.rdb

分别使用三个redis配置文件,启动三个redis服务:

redis-server redis6379.conf &

redis-server redis6380.conf &

redis-server redis6381.conf &

2、通过redis客户端分别连接三台redis服务:

redis-cli -h 127.0.0.1 -p 6379
redis-cli -h 127.0.0.1 -p 6380
redis-cli -h 127.0.0.1 -p 6381

3、查看三台redis服务在集群中的主从角色:

info replication

默认情况下,所有的redis服务都是主机,即都能写和读,但是都还没有从机

4、先在6379进行写操作:
        set k1 v1

三台rdis服务互相独立,互不影响

5、设置主从关系:设从不设主

在6380上执行:

slaveof 127.0.0.1 6379

在6381上执行:

slaveof 127.0.0.1 6379

6、全量复制:一旦主从关系确定,会自动把主库上已有的数据同步复制到从库

在6380和6381上执行:keys *

7、增量复制:主库写数据会自动同步到从库

在6379上执行:set k2 v2

在6380和6381上执行:keys *

8、主写从读,读写分离: 

在6380和6381上执行:set k3 v3  ===>报错

9、主机宕机、从机原地待命:

关闭6379服务:

redis-cli -h 127.0.0.1 -p 6379 shutdown

查看6380和6381服务的主从角色:

info replication

10、主机恢复、一切恢复正常:

重启6379服务:

redis-server redis6379.conf &

客户端连接6379:

redis-cli -h 127.0.0.1 -p 6379

11、从机宕机、主机少一个从机、其它从机不变:

关闭6380服务:

redis-cli -h 127.0.0.1 -p 6380 shutdown

查看6379服务的主从角色:

info replication

查看6381服务的主从角色:

info replication

12、从机恢复、需要重新设置主从关系:

重启6380服务:

redis-server redis6380.conf &

客户端连接6380:

redis-cli -h 127.0.0.1 -p 6380

在6380上执行:

slaveof 127.0.0.1 6379

13、从机上位:

(1)主机宕机、从机原地待命:

关闭6379服务:

redis-cli -h 127.0.0.1 -p 6379 shutdown

查看6380和6381服务的主从角色:

info replication

(2)从机断开原来主从关系:

在6380上执行:

slaveof no one

查看6380服务的主从角色:info replication

(3)重新设置主从关系:

在6381上执行:

slaveof 127.0.0.1 6380

(4)之前主机恢复、变成孤家寡人:

重启6379服务:

redis-server redis6379.conf &

客户端连接6379:

redis-cli -h 127.0.0.1 -p 6379

(5)天堂变地狱:

在6379上执行:

slaveof 127.0.0.1 6381

在6381上执行:info replication   既是主机又是从机(但是6381依然不能写数据,只要是从机角色就不能写入数据)

二、Redis哨兵模式

redis哨兵模式:主机宕机、从机上位的自动版

(1)搭建一主二从集群架构:如上步骤

(2)提供哨兵配置文件:

在redis安装目下创建配置文件:redis_sentinel.conf

sentinel monitor dc-redis 127.0.0.1 6379 1

(3)启动哨兵服务

redis-sentinel redis_sentinel.conf

(4)主机宕机:

关闭6379服务:

redis-cli -h 127.0.0.1 -p 6379 shutdown

哨兵程序自动选择从机上位

(5)之前主机恢复:自动从属于新的主机

重启6379服务:

redis-server redis6379.conf &

客户端连接6379:

redis-cli -h 127.0.0.1 -p 6379

三、Redis消息订阅发布

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道

消息订阅者(client2 、 client5 和 client1)订阅频道 channel1

 消息发布者发布消息到频道channel1,会被发送到三个订阅者

1、subscribe:订阅一个或者多个频道的消息

subscribe ch1 ch2 ch3 

2、publish:将消息发布到指定频道

publish ch1 hello

3、psubcribe:订阅一个或者多个频道的消息,频道名支持通配符

以上是关于Redis-集群主从复制,读写分离;哨兵模式;消息订阅发布的主要内容,如果未能解决你的问题,请参考以下文章

Redis哨兵模式(sentinel)学习总结及部署记录(主从复制读写分离主从切换)

Redis高可用集群方案(主从复制,哨兵模式,Redis集群)

Redis 进阶 -- 搭建主从复制及哨兵模式集群

[ Redis ] 主从复制读写分离哨兵集群的原理分析和配置关注点

[ Redis ] 主从复制读写分离哨兵集群的原理分析和配置关注点

Redis哨兵模式(sentinel)部署记录(主从复制读写分离主从切换)