請準備好本頁面完全:https://redis.io/topics/notifications
綜上,你必須有一個哨兵節目聽PUB/SUB
的消息,你必須改變redis.conf
文件,以使KeyEvent的到期通知:在redis.conf
:
notify-keyspace-events Ex
爲了ENAB樂的特徵用於一個非空字符串,的 多個字符,其中的每個字符具有根據以下表格
E Keyevent events, published with [email protected]<db>__ prefix.
x Expired events (events generated every time a key expires)
然後前哨程序必須監聽信道[email protected]__:del
到特殊的意義 組成如果你的數據庫是0
。如果使用非零值,請更改數據庫編號。
然後,當您訂閱頻道並收到即將到期的key
時,只需發出SREM trending_mints key
即可將其從集中移除。
重要
當一個鍵被訪問和被發現 通過上述系統中的一個過期生成呼出事件,其結果不存在 保證Redis的服務器將能夠在關鍵時間達到零值時生成過期的事件 。
如果沒有命令目標的關鍵不斷,並有與 許多密鑰的TTL相關的,可以有時間 關鍵的生存時間下降到零之間的顯著延遲,時間過期事件是 產生。當Redis的服務器刪除 密鑰而不是當從理論上生存時間達到值的零
基本上過期事件被生成。
所以按鍵將因過期被刪除,但通知不保證在當下TTL發生變爲零。
還有,如果您的哨兵程序錯過PUB/SUB
消息,那麼...就是這樣,您將不會再被通知! (這也在上面的鏈接中)
「如何自動從一組中刪除過期的密鑰? - 爲了澄清,你是否希望在一個集合內失效一個單獨的成員,或者期滿集合鍵和其中的所有內容? – davissp14
是的,我想在一個集合內過期個別成員 –