redis订阅发布 pub/subredis事务 redis订阅发布 pub/sub
redis的list的blpop可以实现类似单播的效果,redis本身也提供了发布订阅模式以实现广播的效果
PUBLISH channel message 向指定频道发送消息
SUBSCRIBE channel [channel ...] 订阅频道
redis的事务的原子性不同于mysql,它的单条指令具有原子性,但在事务中的一系列指令不具有原子性,即事务中的某一条指令出错不会回滚,会继续执行。
MULTI 标记事务开始
EXEC 执行事务
DISCARD 取消事务
WATCH key [key...] 监听key以实现乐观锁
UNWATCH 取消监听key
127.0.0.1:6379> watch k1 #监听k1,如果在exec事务时,k1发生了变化事务就不会执行OK127.0.0.1:6379> multi #标记开启事务OK127.0.0.1:6379> set k1 1 #指令入队QUEUED127.0.0.1:6379> incr k1 #指令入队QUEUED127.0.0.1:6379> exec #执行事务1) OK2) (integer) 2127.0.0.1:6379> get k1"2"127.0.0.1:6379>
如果有两个客户端都提交事务并且都操作了同一个key,那么谁的exec先执行,另一个的事务就会出现错误