天天看點

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消息及以上的訂閱用戶端接收消息。

釋出後的消息會被多個訂閱端同時接收到

本文轉自 DBAspace 51CTO部落格,原文連結:http://blog.51cto.com/dbaspace/1868995

繼續閱讀