缓存数据库-redis(订阅发布)

一:Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

Redis 客户端可以订阅任意数量的频道。

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:

二:示例

# -*- coding:utf-8 -*-
__author__ = ‘shisanjun‘
import redis

class RedisHelper(object):
    def __init__(self):
        self.__conn=redis.Redis(host="192.168.0.121")
        self.chan_sub="fm104.5"
        self.chan_pub="fm104.5"

    def public(self,msg):
        self.__conn.publish(self.chan_pub,msg)
        return True

    def subscribe(self):
        pub=self.__conn.pubsub()#相当于打开收音机
        pub.subscribe(self.chan_sub)#调频道
        pub.parse_response()#准备接受,下次调用才开始接受
        return pub

订阅

# -*- coding:utf-8 -*-
__author__ = ‘shisanjun‘

from redishelp import RedisHelper
obj=RedisHelper()
redis_sub=obj.subscribe()

while True:
    msg=redis_sub.parse_response()
    print(msg)

发布

# -*- coding:utf-8 -*-
__author__ = ‘shisanjun‘
from redishelp import RedisHelper
obj=RedisHelper()
obj.public("hello")
时间: 2024-10-31 02:21:51

缓存数据库-redis(订阅发布)的相关文章

缓存数据库redis

什么是Redis? Redis是一个TCP服务器,支持请求/响应协议. 在Redis中,请求通过以下步骤完成: 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应. 服务器处理命令并将响应发送回客户端. Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库,缓存和消息中间件.它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询,

Redis订阅发布功能

Redis安装使用 1.下载Redis:http://redis.io/download 2.解压安装: #tar zxf redis-3.0.6.tar.gz #make 3.启动 #cd /usr/local/src/redis-3.0.6 #src/redis-server & 4.检查 5.登陆 #src/redis-cli 6.常用命令  set name 'yangmv'        存数据            get name                        取数

ServiceStack.Redis订阅发布服务的调用(Z)

1.Redis订阅发布介绍Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式.发布者和订阅者之间使用频道进行通信,当需要发送消息时,发布者通过publish命令将消息发送到频道上,该消息就会发送给订阅这个频道的订阅者. 图片来自于http://www.runoob.com/redis/redis-pub-sub.html 2.ServiceStack.Redis ServiceStack.Redis是R

责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用

1.业务场景 生产车间中使用的条码扫描,往往一把扫描枪需要扫描不同的条码来处理不同的业务逻辑,比如,扫描投入料工位条码.扫描投入料条码.扫描产出工装条码等,每种类型的条码位数是不一样,因此通过条码长度来进行业务区分. 2.初步设计 面对此场景,能够想到的最简单的设计就是使用if...else if...或者swith进行判断,因此,我们编写的代码如下 1 switch(barCode.length) 2 { 3 case 3: 4 DoSomething1(); 5 break; 6 case

PHP + Redis 订阅/发布 实现即时通讯功能

最近比较忙,没时间更新博客,先暂时记下,待后续补充 Redis Sub/Pub 订阅/发布 待编辑 PHP + Redis 订阅/发布 实现即时通讯 待编辑 原文地址:http://blog.51cto.com/12750968/2105579

缓存数据库-redis数据类型和操作(list)

转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素). List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: 二:列表常用操作 1)lpush(name,values)  在name对应的l

2020-04-05-SpringBoot+WebSocket基于Redis订阅发布实现集群化

SpringBoot+WebSocket基于Redis订阅发布实现集群化 前面讲了单机版的websocket如何使用发送群聊(2020-03-24-springboot快速集成websocket实现群聊),那么要是部署多个服务实现集群话怎么实现呢? 由于websocket是长连接,session保持在一个server中,所以在不同server在使用websocket推送消息时就需要获取对应的session进行推送,在分布式系统中就无法获取到所有session,这里就需要使用一个中间件将消息推送到

消息队列RabbitMQ、缓存数据库Redis

1.RabbitMQ消息队列 1.1 RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然. AMQP的主要特征是面向消息.队列.路由(包括点对点和发布/订阅).可靠性.安全. RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..N

缓存数据库-redis安装和配置

一:redis安装 python操作redis分为两部分,一为安装redis程序 二是安装支持python操作redis的模块 1)安装redis redis 官方网站:http://www.redis.cn/ Redis 没有官方的Windows版本,但是微软开源技术团队(Microsoft Open Tech group)开发和维护着这个 Win64 的版本 https://github.com/MicrosoftArchive/redis/releases linux安装 wget htt