栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Redis独立功能的实现

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的事务总是以串行的方式运行的,并且事务也总是具有隔离性的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/335875.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号