redis支持订阅模式
之前只知道redis的watch和zookeeper的watch功能差很多,redis的watch只用在事务之前,那如果想像zookeeper一样实现通知怎么办?答案是可以通过redis的pubsub订阅来实现消息发布。
概括来说主要有三大类:
- 对topic/channel进行订阅和发布(与keyspace无关)
- 对某key的相关事件进行订阅发布
__keyspace@db__: key
- 对特定事件进行订阅发布
__keyevent@db__: event
1.对channel订阅发布
参考:redis.io/topics/pubsub
无须配置,直接可用。
1.1 subscribe/publish
订阅的channel没有上限,可订阅任意数量。(后面讲到的psubscribe支持模式匹配,模式匹配其实也就相当于任意数量了)。
发布:
subscriber将收到:
1.2 psubscribe
redis还支持模式匹配,如:
需注意开启订阅之后,是无法执行其它commands的。
2.Redis Keyspace Notifications
参考:redis.io/topics/notifications
该功能需要在配置文件中配置notify-keyspace-events
############################# EVENT NOTIFICATION ##############################
# Redis can notify Pub/Sub clie