Redis的高级实用特性——发布及订阅消息
来源:互联网 发布:油性染料 淘宝 编辑:程序博客网 时间:2024/06/10 16:18
下面做个实验。这里使用3不同的client, client1用于订阅tv1这个channel的消息,client2用于订阅tv1和tv2这2个chanel的消息,client3用于发布tv1和tv2的消息。
下面将详细的解释一下上面的例子
1、client1订阅了tv1这个channel这个频道的消息,client2订阅了tv1和tv2这2个频道的消息
2、client3 是用于发布tv1和tv2这2个频道的消息发布者
3、接下来我们在client3发布了一条消息”publish tv1 program1”,大家可以看到这条消息是发往tv1这个频道的
4、理所当然的client1和client2都接收到了这个频道的消息
5、 然后client3又发布了一条消息”publish tv2 program2”,这条消息是发往tv2的,由于client1并没有订阅tv1,所以client1的结果中并没有显示出任何结果,但client2订阅了这个频道,所以client2是会有返回结果的。
我们也可以用psubscribe tv*的方式批量订阅以tv开头的频道的内容。
看完这个小例子后应该对pub/sub功能有了一个感性的认识。需要注意的是当一个连接通过subscribe或者psubscribe订阅通道后就进入订阅模式。在这种模式除了再订阅额外的通道或者用unsubscribe或者punsubscribe命令退出订阅模式,就不能再发送其他命令。另外使用 psubscribe命令订阅多个通配符通道,如果一个消息匹配上了多个通道模式的话,会多次收到同一个消息。
下面给出PHP的实现代码:
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $channel = $argv[1]; // channel $msg = $argv[2]; // msg $redis->publish('channel'.$channel, $msg); ?>
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $channel = $argv[1]; // channel $redis->subscribe(array('channel'.$channel), 'callback'); function callback($instance, $channelName, $message) { echo $channelName, "==>", $message,PHP_EOL; } ?>
- Redis的高级实用特性——发布及订阅消息
- Redis的高级实用特性——发布及订阅消息
- Redis实战《红丸出品》4.5 Redis高级实用特性之发布及订阅消息
- Redis高级实用特性(持久化机制、发布订阅消息、虚拟内存的使用)
- NoSQL之Redis高级应用--发布及订阅消息
- redis发布及订阅消息
- Redis消息系统——发布/订阅
- Redis消息的发布/订阅
- Redis初探08——Redis的高级实用特性
- Redis发布及订阅消息(pub/sub)
- 【Redis学习】:redis特性——多数据库、服务器命令、消息订阅与发布和事务
- Redis消息订阅发布
- redis发布订阅消息
- redis消息订阅发布
- redis的消息发布订阅系统 php
- redis的消息订阅/发布总结
- Spring MVC + redis 消息的订阅发布
- Redis学习10——消息订阅与发布
- sizeof和strlen的区别
- oracle for循环loop的工作机制
- 关于Volley的使用方式
- android中sharedPreferences的用法
- Struts2_08_利用DomainModel接收参数
- Redis的高级实用特性——发布及订阅消息
- 合并两个排序的链表
- GPIO电路图以及上拉电阻的作用
- mybatis
- LINUX使用ps命令获取对应PID
- Android listView 每行多个Button 响应点击事件
- 我的Java之路二:早起的鸟儿有虫吃,早起的人儿。。。。。暂时起不来
- [kuangbin带你飞]专题一 简单搜索 H POJ3414
- 后台开发进阶学习