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

本文介绍了如何搭建Redis的一主二从集群,实现读写分离,并详细阐述了主从复制的过程。此外,还探讨了Redis哨兵模式,它是主机宕机时从机自动上位的解决方案,确保高可用性。通过实例演示了哨兵配置和故障切换的过程。
摘要由CSDN通过智能技术生成

一、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

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

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

在6380上执行:

slaveof 127.0.0.1 6379

在6381上执行:

slaveof 127.0.0.1 6379

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

在6380和6381上执行:

keys *

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

在6379上执行:

在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:订阅一个或者多个频道的消息,频道名支持通配符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值