深入redis(发布订阅的使用和事务操作介绍)

Redis上一章教程请查看:redis有序集和HyperLogLog结构使用详解
这一章我们讨论redis发布订阅的基本使用以及redis事务操作。
一、redis发布订阅基本使用Redis发布/订阅实现了消息传递系统,发送方(在Redis术语中称为发布者)发送消息,而接收方(订阅者)接收消息,传递消息的链路称为信道,在Redis中客户端可以订阅任意数量的频道。
下面的示例解释了发布订阅者概念的工作方式,在下面的示例中一个客户端订阅了一个名为redisChat的通道。

redis > SUBSCRIBE redisChat Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "redisChat" 3) (integer) 1

现在两个客户端在同一个名为redisChat的通道上发布消息,上面订阅的客户端正在接收消息。
redis > PUBLISH redisChat "Redis可用于Web缓存" (integer) 1 redis > PUBLISH redisChat "Redis教程" (integer) 1 1) "message" 2) "redisChat" 3) "Redis可用于Web缓存" 1) "message" 2) "redisChat" 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(发布订阅的使用和事务操作介绍)】Redis事务允许在单个步骤中执行一组命令,下面是事务的两个属性。
事务中的所有命令都作为单个独立操作顺序执行,另一个客户端发出的请求不可能在执行Redis事务的过程中被处理。Redis事务也是原子性的,原子意味着要么处理所有命令,要么一个也不处理。
Redis事务由命令MULTI启动,然后你需要传递一个应该在事务中执行的命令列表,然后整个事务由EXEC命令执行。
redis > MULTI OK 这里是命令列表 redis > EXEC

下面的例子解释了如何启动和执行Redis事务。
redis > MULTI OK redis > SET db redis QUEUED redis > GET db QUEUED redis > INCR visitors QUEUED redis > EXEC 1) OK 2) "redis" 3) (integer) 1

Redis事务操作的所有命令
编号 命令 & 简述
1 DISCARD 执行MULTI后丢弃所有命令的执行
2 EXEC 执行MULTI之后发出的所有命令
3 MULTI 标记事务块的开始
4 UNWATCH 取消所有监听过的key
5 WATCH key [key … ] 监视给定的键以确定MULTI/EXEC块的执行

    推荐阅读