2017-03-02 31 views
0

我能夠通過啓動服務器來接收redis的密鑰改變發佈 - 訂閱通知:Redis的密鑰空間的通知 - 同時獲得鍵和值變化

./redis-server --notify-keyspace-events KEA 

,然後只需運行下面的腳本:

import redis 
connection = redis.StrictRedis() 
pubsub = connection.pubsub() 

pubsub.subscribe("[email protected]__:my_key") 

在一個單獨的偵聽器線程中。該消息中收到類似如下:

{'pattern': None, 'type': 'message', 'channel': '[email protected]__:my_key', 'data': 'set'} 

我想看到的消息中都更新的「鑰匙」 相應的「價值」。我如何通過pubsub獲得新的價值?

第二個問題:我如何收到所有「關鍵」更新。我試過這個:

pubsub.subscribe("[email protected]__:*") 

但是不幸的是它沒有返回任何東西。

這是入門的一個很好的參考:Redis keyspace event not-firing

回答

2

KEYSPACE通知報告中的值,只有執行的關鍵的名稱和/或命令被包括在公佈的消息中。

對此的主要推理是Redis值可能變得相當大。

如果你確實真的需要這種行爲,那實際上很簡單。由於密鑰空間通知使用的是發佈/訂閱消息,因此您可以在每次相關操作後,自行撥打PUBLISH,並提供您感興趣的信息。

+0

有意義。有沒有巧妙的解決方法? – vgoklani

+0

不,有一個簡單的方法 - 讓我們編輯上面的那個效果:) –