Redis独立功能的实现

前言

Redis系列博客为对黄健宏老师《Redis设计与实现》一书内容的整理

第三大章多机数据库的实现主要与分布式内容相关,没必要在这里整理,掌握思想就好,这里先忽略

第18章 发布与订阅

Redis的发布与订阅功能由PUBLISH(指定频道)、SUBSCRIBE、PSUBSCRIBE(模式匹配)等命令组成。

通过执行subscribe命令,客户端可以订阅一个或多个频道,从而成为这类频道的订阅者:每当有其他客户端向被订阅的频道发送消息,频道的所有订阅者都会收到这条消息。

参考资料:

Redis设计与实现——Redis的发布与订阅____是六月呀~的博客-CSDN博客

思考问题:

Redis发布与订阅有什么应用?

1、Redis Sentinel 节点发现

2、redission 分布式锁 

订阅锁信息,查看是否可以获取对应的信息

参考资料:

Redis 发布订阅,小功能大用处,真没那么废材! - 楼下小黑哥 - 博客园

Redis发布与订阅是否可以用于实现消息队列?

答:Redis订阅功能用于实现消息队列功能的时候过于简单,需要根据业务场景判断。Redis消息队列即使使用也只适合用于处理不重要的消息。

原因:Redis订阅功能需要实时处理不支持数据持久化;发送过来直接送走,无法缓存,因此不适合用于消息队列。

Redis消息队列与一般消息队列的对比:

将redis发布订阅模式用做消息队列和rabbitmq的区别_weixin_34061042的博客-CSDN博客

第19章 事务

Redis通过MULTI、EXEC、WATCH等命令来实现事务功能。事务执行期间,事务不会中断事务而改去执行其他客户端的命令请求,它会将事务中的所有命令都执行完毕,然后才去处理其他客户端的命令请求。

事务的实现

(1)事务开始,通过MULTI实现

(2)命令入队

(3)事务执行

WATCH命令的实现

watch命令是一个乐观锁(optimistic locking),它可以在EXEC命令执行之前,监视任意数量的数据库键,并在EXEC命令执行时,检查被监视的键是否至少有一个被修改过了,如果的话,说明事务的安全性已经被破坏,服务器将拒绝执行事务,并向客户端发送代表事务执行失败的空回复。

Redis事务没有回滚的概念,命令会全部执行完毕,有问题的指令会进行错误处理。

另外Redis使用单线程的方式来执行事务,并且服务器保证,在执行事务期间不会对事务进行中断,因此,Redis的事务总是以串行的方式运行的,并且事务也总是具有隔离性的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值