六. Redis发布订阅机制
2016-02-03 13:41
736 查看
发布订阅(pub/sub)是一种消息通信模式,主要是解除消息发布者和消息订阅者之间通信的耦合。
Redis作为一个pub/sub的服务器,在订阅者和发布者之间起到了一个消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis 服务器订阅自己感兴趣的消息类型,redis将信息类型称为通道(channel)。当发布者通过publish命令想redis server发送特定类型的信息时,订阅该信息类型的全部client都会收到此消息。
A客户端通过 SUBSCRIBE 订阅通道 TV1
127.0.0.1:6379> SUBSCRIBE TV1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "TV1"
3) (integer) 1
1) "message"
2) "TV1"
3) "hexu"
B客户端通过 SUBSCRIBE 订阅通道 TV1 TV2
127.0.0.1:6379> SUBSCRIBE TV1 TV2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "TV1"
3) (integer) 1
1) "subscribe"
2) "TV2"
3) (integer) 2
发布者 通过 PUBLISH 命令 发布 TV1 的消息为 hexu,被 A客户端和B客户端接收到
127.0.0.1:6379> PUBLISH TV1 hexu
(integer) 2
通过C#端实现:
class PubOrSub { static void Main(string[] args) { using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("192.168.221.128:6379,password=hexu,allowAdmin=true")) { redis.PreserveAsyncOrder = false; Console.WriteLine("请输入Pub/Sub类型:"); string type = Console.ReadLine(); if (type.Equals("Sub")) { Console.WriteLine("请输入订阅的频道:"); string channel = Console.ReadLine(); var subscribe = redis.GetSubscriber(); subscribe.Subscribe(channel, (c, v) => { Console.WriteLine(String.Format("{0}:{1}", c.ToString(), v.ToString())); }); } if (type.Equals("Pub")) { Console.WriteLine("请输入发布消息的频道名称:"); string channel = Console.ReadLine(); Console.WriteLine("请输入发布的消息:"); string message = Console.ReadLine(); var subscribe = redis.GetSubscriber(); long x = subscribe.Publish(channel, message); } Console.ReadKey(); } } }
相关文章推荐
- 六. Redis发布订阅机制
- redis详解
- Redis3.0集群完全版(数据迁移问题)
- Linux下Redis的安装和部署
- Redis 实例: 集群
- Redis内存调优一例
- Redis "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk"问题
- redis配置文件详解(三)
- redis配置文件详解(二)
- redis配置文件详解(一)
- 使用Redis统计活跃用户
- redis
- redis在windows_64位环境下使用
- 《Redis设计和实现》读书笔记1-简单动态字符串
- C++自制Redis数据库 (一)
- Flask+Nginx+Gunicorn+Redis+Mysql搭建一个小站
- Redis数据存储类型(一)
- centos7添加phpredis
- python访问redis
- SWOOLE异步REDIS安装