redis事务、队列

Redis消息队列

生产者/消费者模式(PUSH/POP)

基于阻塞队列实现

BRPOP key [key …] timeout 超时时间内,从队列右侧阻塞式弹出元素

BLPOP key [key …] timeout

(可先生产再消费,也可消费者先阻塞获取等待生产者入队)

入队

127.0.0.1:6379>RPUSH my_list “Spark” “hadoop”"hive"

(integer) 3

127.0.0.1:6379>LRANGE my_list 0 -1

1)“Spark”

2)“Hadoop”

3)“Hive”

出队

127.0.0.1:6379>BLPOP my_list other_list1 other_list2 60

1)“my_list1” #执行弹出操作的列表

2)“Spark” #被弹出的项

Redis只提供了阻塞获取,因队列长度是无限的,所以不存在队列存满需等待消费者消费的情况,即只提供阻塞版本的获取即可。

发布-订阅模式(PUB/SUB)

基于Redis自身提供了PUB/SUB机制

SUBSCRIBE my_channel_1 [my_channel_2 …]
订阅给定的一个或多个频道的信息

PUBLISH my_channel_1 message
将信息message发送到指定频道my_channel_1

ClientA

127.0.0.1:6379>SUBSCRIBE my_chnnel_1

Redinging message… <press Ctrl + c to quit>

(等待生产者发布…,发布完成,收到消息)

1)“subscribe”

2)“chennel”

3)“1”

1)“message”

2)“my_chennel_1”

3)“this is my message!”

ClientB

127.0.0.1:6379>PUBLISH my_chnnel_1 "this is my message!"

(integer) 1

Sentinel

Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,Master-slave的模式时主节点宕机从节点并不会自动切换。Redis-sentinel能监控多个master-slave集群,**发现Master宕机后,sentinel集群进行选举,选举出一个sentinel,根据Master配置找到Slave节点并选举其中一个升级为新的主节点(会修改相关节点的配置文件)来实现自动切换,主从切换统筹工作由单个sentinel去做。**sentinel本身也是一个redis进程,当使用哨兵模式时,客户端就不再直连redis服务机器了,而是连接哨兵机器

  • sentinel侧重于高可用,而cluster侧重于存储与扩展(cluster相当于在哨兵基础上增加了扩展性)
  • 当Master宕机时才会触发切换
  • sentinel自身的高可用至少要有3个节点,在选举leader时必须超过50%的节点投票才能选出来,如果只有2个节点,挂了一个后sentinel集群直接不可用
  • 集群模式也好单个哨兵也好,配置文件内只需配置要监控的Master节点,无需配置其他哨兵节点,它可以自动识别监控该Master的其他哨兵,并维护到一个列表中,这个列表保存了 Sentinel 已知的,监视同一个主服务器的所有其他Sentinel。

Sentinel集群配置

不是很靠谱…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-88VDGQjS-1598778140276)(D:\中国制造\H\redis事务、队列\img1.jpg)]

其他Sentinel。

Sentinel集群配置

不是很靠谱…

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值