本文共 1320 字,大约阅读时间需要 4 分钟。
最近的项目需要一个实时消息通知系统,Redis的Pub/Sub功能正好满足需求。通过学习和使用Redis Pub/Sub,可以实现低成本、高效率的实时消息通知。
Pub/Sub(Publish/Subscribe)是一种基于事件的通信模式,广泛应用于大型系统的松散耦合交互。
以下是Redis Pub/Sub的简单操作演示
启动Redis服务端
在终端中运行Redis服务器:redis-server
启动Redis客户端作为订阅端
打开新的终端窗口,连接Redis服务器并订阅频道test: redis-cli -h 127.0.0.1 subscribe test
启动Redis客户端作为发布者
在另一个终端窗口中,发布消息至频道test: redis-cli -h 127.0.0.1 publish test "hello,world"
查看订阅到的消息
切换到订阅端窗口,会收到刚发布的消息:127.0.0.1:6379> hello,world
模式匹配订阅
通过指定模式可以接收多个频道的消息。例如,订阅test.*匹配所有以test.开头的频道: redis-cli -h 127.0.0.1 subscribe test.*
发布test.name和test.phone,订阅端会接收到所有匹配的消息。
取消订阅
使用PUNSUBSCRIBE命令取消订阅: redis-cli -h 127.0.0.1 punsubscribe test.*
以下是基于PHP实现Redis Pub/Sub的代码示例
安装PHPRedis扩展
如果尚未安装,参考相关文档进行安装。PHP代码示例
发布端(pub.php)
connect('127.0.0.1', 6379); $redis->publish('test', 'hello,world'); ?> 订阅端(sub.php)
pconnect('127.0.0.1', 6379, 0); $redis->subscribe(['test'], 'callback'); ?> callback函数接收消息:function callback($redis, $channel, $message) { echo "Channel: $channel, Message: $message\n"; } php pub.php
127.0.0.1:6379> hello,world
通过以上方法,可以轻松实现Redis Pub/Sub功能,满足实时消息通知需求。
转载地址:http://srvfk.baihongyu.com/