美文网首页大数据开发
大数据开发:Redis发布与订阅

大数据开发:Redis发布与订阅

作者: 成都加米谷大数据 | 来源:发表于2021-07-08 18:02 被阅读0次

Redis作为大数据生态当中的重要组件之一,也是主流最受欢迎的NOSQL数据库之一,应用于缓存系统、消息队列等场景下。今天的大数据开发学习分享,我们主要来讲讲Redis当中的重要概念,发布与订阅的实现。

发布订阅

Redis可以借助List实现生产者消费者模式,但是仅支持一个消费者读取信息,如果想实现多消费者就可以通过发布订阅来实现。

通过SUBSCRIBE和PSUBSCRIBE命令可以指定订阅某个key或模式,通过PUBLUSH可以发送消息,使用SUBSBSCRIBE或PUNSUBSCRIBE可以取消订阅。

实现上,Redis通过维护一个订阅集合以及一个模式列表来实现。订阅列表的key是对应的频道,值通过一个链表来存储对应的订阅者;模式列表则直接保存模式与订阅者的信息。

当通过PUBLISH发送消息时,首先通过订阅集合查询订阅的客户端,其次遍历模式列表检查是否有与之匹配的模式并查询对应的客户端,然后向对应的客户端发送消息。

事务机制

在Redis中也支持事务处理,提供一次性提交多条命令的机制。使用时,先用MULTI开启事务操作,然后使用EXEC提交。

实现上,Redis通过一个命令队列来缓存提交的命令。使用MULTI命令后,Redis的普通命令都不会立即执行,而是缓存到命令队列中,直到执行EXEC后,才统一提交到集群。为了保证事务的一致性,一般会在MULTI之前使用WATCH命令对某个key进行监控,从而实现乐观锁。

使用WATCH命令后,会在服务器上为对应的key创建一个监听列表,当服务器接收到修改命令时,会遍历列表中的客户端对象,标记为REDIS_DIRTY_CAS,当客户端提交命令后,服务器检查对应的标识为记号,会拒绝执行。

Redis中的事务也是支持ACID特性的:

1.原子性,首先要理解Redis中的错误,一种是命令错误,比如少了关键参数;另一种是执行错误。命令错误会导致整个事务拒绝执行,而执行错误则会被忽略。从命令错误的角度来说,Redis支持原子性,即要么全执行,要么都不执行。而从传统数据库的角度,由于Redis不支持回滚,因此它的原子性又有一些歧义。

2.一致性,由于前面的执行错误会被服务器自动识别并忽略,因此不会影响最后的结果

3.隔离性,由于Redis本身是单线程的,事务又是一组一组提交的,因此多个事务之间也是有隔离性的

4.持久性,如果Redis使用了RDB和AOF,还是可以保证持久性的。

关于大数据开发学习,Redis发布与订阅,以上就为大家做了大致的讲解了。Redis是大数据学习必学的一个组件,对于内部的诸多运行细节,也需要大家多去深入理解和掌握。

相关文章

  • 大数据开发:Redis发布与订阅

    Redis作为大数据生态当中的重要组件之一,也是主流最受欢迎的NOSQL数据库之一,应用于缓存系统、消息队列等场景...

  • redis-订阅与发布

    redis-订阅与发布 Redis 通过 PUBLISH 、 SUBSCRIBE 等命令实现了订阅与发布模式, 这...

  • 101-Redis 订阅与发布

    订阅与发布 ¶Redis 发布订阅 http://www.redis.net.cn/order/3633.html...

  • Redis实现不可靠发布/订阅功能

    Redis的发布/订阅模型 Redis 通过 PUBLISH 、 SUBSCRIBE 等命令实现了订阅与发布模式,...

  • Redis发布与订阅

    一、发布与订阅 实际中,redis很少使用发布与订阅来代替MQ角色。 二、使用redis客户端实现 Redis 发...

  • Redis源码研究之订阅与发布

    本文主要说明Redis的两种订阅模式的实现。 建议阅读: 1、Redis订阅与发布理论说明见:Redis之发布与...

  • Redis 实战 —— 05. Redis 其他命令简介

    发布与订阅 P52 Redis 实现了发布与订阅(publish/subscribe)模式,又称 pub/sub ...

  • Redis发布订阅模式

    Redis支持发布订阅模式,先了解一下与发布订阅相关的命令。 发布订阅模式命令 SUBSCRIBE命令用于订阅ch...

  • redis发布订阅模式

    最近项目中,有个功能点是利用redis的发布订阅机制,进行服务器本地缓存数据同步。由于redis发布订阅功能的可靠...

  • Redis高级

    Redis高级 发布订阅 Redis提供了发布订阅功能,可以用于消息的传输 Redis的发布订阅机制包括三个部分,...

网友评论

    本文标题:大数据开发:Redis发布与订阅

    本文链接:https://www.haomeiwen.com/subject/fnptpltx.html