Basic Tutorials of Redis(7) -Publish and Subscribe
This post is mainly about the publishment and subscription in Redis.I think you may subscribe some offiial
accounts on wechat,and when the authors published something new to their accounts,you will get them in
your wechat.The instance can make you understand this pattern easily.You will find there only 6 commands
for publishment and subscription.

This post introduces the basic usages as well.I will show you how to publish a message to a channel.publish
is the command to publish sometings.I publish a channel named news-nba with the message nba.And the client
return me a integer 0.What is the meaning of the return value?It means that there is nobody subscribe this channel.
publish news-nba nba

I open a new client for subscriber.In this client,I subscribe the above channel news-nba.It will return something
about this channel.
subscribe news-nba

OK,let's publish a new message to the news-nba to see the changes in the both clients.After publishing lakers to
the news-nba channel,this client returns 1.It means that the channel has a subscriber.
publish news-nba lakers

Let's turn to the subscriber's client.You will find the message lakers was already in the client.So amazing it is.


publish a new message to the news-nba,it returns 2 meaning ...(you understand it)



All right,let's see the other commands of this feature in Redis.Seeing the sql first:
select * from channels where channelname like 'news%' To execute this sql,you will get all of the channel whoes
name start with news.Redis can also do that to help us subscibe many channels by matching their name vaguely.
For example I want to subscribe all the channels of news.I will use psubscribe to do this job.
psubscribe news-*

publish news-tech tech

The subscriber's client will receive the message from the channel news-tech.

Again!!Publishing a message to a new channel.




As you can see,the client receives this message as well.
following code demonstrates the usage in C#.
//publisher
var sub = redis.GetSubscriber();
//subscriber
var sub2 = redis.GetSubscriber(); sub.Publish("news-nba", "nba");
sub.Publish("news-tech", "tech"); //sub
sub2.Subscribe("news-nba", (channel, value) =>
{
Console.WriteLine(string.Format("{0} has been published to {1}!",value,channel));
});
sub2.Subscribe("news-tech", (channel, value) =>
{
Console.WriteLine(string.Format("{0} has been published to {1}!", value, channel));
}); sub.Publish("news-nba", "Lakers");
sub.Publish("news-nba", "Kobe"); sub.Publish("news-tech", "lumia"); System.Threading.Thread.Sleep();
Console.WriteLine("unscribe the news-nba");
sub2.Unsubscribe("news-nba");//unsub sub.Publish("news-tech", "surface pro3"); System.Threading.Thread.Sleep();
sub.Publish("news-nba", "james"); System.Threading.Thread.Sleep();
Console.WriteLine("unscribe all channels");
sub2.UnsubscribeAll(); sub.Publish("news-nba", "paul");
sub.Publish("news-tech", "surface pro4");

Basic Tutorials of Redis(7) -Publish and Subscribe的更多相关文章
- Basic Tutorials of Redis(9) -First Edition RedisHelper
After learning the basic opreation of Redis,we should take some time to summarize the usage. And I w ...
- Basic Tutorials of Redis(6) - List
Redis's List is different from C#'s List,but similar with C#'s LinkedList.Sometimes I confuse with t ...
- Basic Tutorials of Redis(2) - String
This post is mainly about how to use the commands to handle the Strings of Redis.And I will show you ...
- dotnet core use Redis to publish and subscribe
安装Redis 同样我这边再次使用Docker, 方便快捷: # 拉取镜像 docker pull redis # 运行镜像 docker run -d -p 6379:6379 --name red ...
- Basic Tutorials of Redis(8) -Transaction
Data play an important part in our project,how can we ensure correctness of the data and prevent the ...
- Basic Tutorials of Redis(5) - Sorted Set
The last post is mainly about the unsorted set,in this post I will show you the sorted set playing a ...
- Basic Tutorials of Redis(4) -Set
This post will introduce you to some usages of Set in Redis.The Set is a unordered set,it means that ...
- Basic Tutorials of Redis(3) -Hash
When you first saw the name of Hash,what do you think?HashSet,HashTable or other data structs of C#? ...
- Basic Tutorials of Redis(1) - Install And Configure Redis
Nowaday, Redis became more and more popular , many projects use it in the cache module and the store ...
随机推荐
- [原] 利用 OVS 建立 VxLAN 虚拟网络实验
OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...
- linux下安装Redis以及phpredis模块
一:redis的安装 1. 首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载 2. 通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作 3. ...
- 烂泥:wiki系统confluence5.6.6安装、中文、破解及迁移
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki.通过它 ...
- VIM教程
vim 的环境设定参数 :set nu :set nonu 就是设定与取消行号啊! :set hlsearch :set nohlsearch hlsearch 就是 ...
- 录像时调用MediaRecorder的start()时发生start failed: -19错误
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- 用Go实现的简易TCP通信框架
接触到GO之后,GO的网络支持非常令人喜欢.GO实现了在语法层面上可以保持同步语义,但是却又没有牺牲太多性能,底层一样使用了IO路径复用,比如在LINUX下用了EPOLL,在WINDOWS下用了IOC ...
- 简单事件机制Java实现
一个很简单方便的事件处理方法. 使用效果 事件发布者: //定义事件 public static EventTrans<String> AuthFailed = new EventTran ...
- 如何在腾讯开放平台的云服务器上安装php和memcache 一
由于被通知腾讯的CEE要关闭了,必须自己切换到服务器,自己装php.烦到一个B. 首先找到官方wiki: http://wiki.qcloud.com/wiki/SUSE%E7%8E%AF%E5%A2 ...
- ABP(现代ASP.NET样板开发框架)系列之9、ABP设置管理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之9.ABP设置管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之11、ABP领域层——仓储(Repositories)
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之11.ABP领域层——仓储(Repositories) ABP是“ASP.NET Boilerplate Proj ...