圣凤凌霜 发表于 2018-11-4 12:36:55

Redis 发布订阅模型

  RedisServer包含两个重要的结构:
  1. channels:实际上就是一个key-value的Map结构,key为订阅地频道,value为Client的List
  2. patterns:存放模式+client地址的列表
  从pubsub_channels中找出跟publish中channel相符的clients-list,然后再去pubsub_patterns中找出每一个相符的pattern和client。向这些客户端发送publish的消息。
  在程序终止或者类的实例被销毁的时候,请将订阅者实例注销掉,否则,在redis中一直存在这个订阅者。
  Redis 发布端
  redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
  (integer) 1
  redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by tutorials point"
  Redis订阅端:
  redis 127.0.0.1:6379> SUBSCRIBE redisChat
  Reading messages... (press Ctrl-C to quit)
  1) "subscribe"
  2) "redisChat"
  3) (integer) 1
  现在,两个客户端都发布在同一个通道名redisChat消息及以上的订阅客户端接收消息。
  发布后的消息会被多个订阅端同时接收到

页: [1]
查看完整版本: Redis 发布订阅模型