欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
全部教程·
数据库·
Redis
[目录]
·
Redis 发布订阅
Redis 教程
Redis 安装教程
Redis 安装 Redis 配置 Redis 命令运行Redis 数据类型
Redis 数据类型 Redis 键(Key) Redis 字符串(String) Redis 哈希(Hash) Redis 列表(List) Redis 集合(Set) Redis 有序集合(ZSet)Redis 高级教程
Redis 连接 Redis 事务 Redis 服务器 Redis 发布订阅 Redis 脚本 Redis HyperLogLog Redis GEO Redis Stream Redis 备份与恢复 Redis 安全 Redis 性能测试 Redis 客户端连接 Redis 管道技术 Redis 分区/分片 Java 使用 Redis PHP 使用 RedisRedis 命令参考
Redis 命令手册 Redis DEL 命令 Redis EXISTS 命令 Redis EXPIRE 命令 Redis KEYS 命令 Redis TTL 命令 Redis RANDOMKEY Redis SET 命令 Redis GET 命令 Redis MGET 命令 Redis MSET 命令 Redis INCR 命令 Redis DECR 命令 Redis APPEND 命令 Redis HDEL 命令 Redis HEXISTS 命令 Redis HGET 命令 Redis HLEN 命令 Redis HSET 命令 Redis LPUSH 命令 Redis LPOP 命令 Redis LLEN 命令 Redis RPOP 命令 Redis RPUSH 命令 Redis SADD 命令 Redis SISMEMBER 命令 Redis SPOP 命令 Redis ZADD 命令 Redis ZRANGE 命令 Redis ZRANK 命令
Redis 教程
Redis 安装教程
Redis 安装 Redis 配置 Redis 命令运行Redis 数据类型
Redis 数据类型 Redis 键(Key) Redis 字符串(String) Redis 哈希(Hash) Redis 列表(List) Redis 集合(Set) Redis 有序集合(ZSet)Redis 高级教程
Redis 连接 Redis 事务 Redis 服务器 Redis 发布订阅 Redis 脚本 Redis HyperLogLog Redis GEO Redis Stream Redis 备份与恢复 Redis 安全 Redis 性能测试 Redis 客户端连接 Redis 管道技术 Redis 分区/分片 Java 使用 Redis PHP 使用 RedisRedis 命令参考
Redis 命令手册 Redis DEL 命令 Redis EXISTS 命令 Redis EXPIRE 命令 Redis KEYS 命令 Redis TTL 命令 Redis RANDOMKEY Redis SET 命令 Redis GET 命令 Redis MGET 命令 Redis MSET 命令 Redis INCR 命令 Redis DECR 命令 Redis APPEND 命令 Redis HDEL 命令 Redis HEXISTS 命令 Redis HGET 命令 Redis HLEN 命令 Redis HSET 命令 Redis LPUSH 命令 Redis LPOP 命令 Redis LLEN 命令 Redis RPOP 命令 Redis RPUSH 命令 Redis SADD 命令 Redis SISMEMBER 命令 Redis SPOP 命令 Redis ZADD 命令 Redis ZRANGE 命令 Redis ZRANK 命令Redis 发布订阅
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。
Redis 客户端可以订阅任意数量的频道。
1. Redis 发布订阅图示
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
2. Redis 发布订阅范例
以下范例演示了发布订阅是如何工作的,需要开启两个 redis-cli 客户端。
我们首先开启一个redis-cli,使用订阅命令,订阅了名为 News 频道。
redis 127.0.0.1:6379> SUBSCRIBE News Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "redisChat" 3) (integer) 1
现在,我们先重新开启个 redis 客户端,向 News 频道发布两次消息,订阅者就能接收到消息。
redis 127.0.0.1:6379> PUBLISH News "TestNews 1" (integer) 1 redis 127.0.0.1:6379> PUBLISH News "TestNews 2" (integer) 1 # 订阅者的客户端会显示如下消息 1) "message" 2) "News" 3) "TestNews 1" 1) "message" 2) "News" 3) "TestNews 2"
3. Redis 发布订阅命令
下表列出了 redis 发布订阅常用命令:
| 序号 | 命令及描述 |
|---|---|
| 1 | PSUBSCRIBE pattern [pattern ...] 订阅一个或多个符合给定模式的频道。 |
| 2 | PUBSUB subcommand [argument [argument ...]] 查看订阅与发布系统状态。 |
| 3 | PUBLISH channel message 将信息发送到指定的频道。 |
| 4 | PUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道。 |
| 5 | SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息。 |
| 6 | UNSUBSCRIBE [channel [channel ...]] 指退订给定的频道。 |
下一章:Redis 脚本
Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。redis 脚本常用命令包括:EVAL script numkeys key [key ...] arg [arg ...] 执行 Lua 脚本。SCRIPT LOAD script 将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。
AI 中文社