python獲取redis key過時的信息

一、使用redis key 過時通知,需開啓key過時通知功能:python

登陸進入redis-cli 客戶端,執行:redis

config set notify-keyspace-events Ex

【或者啓動redis前在redis.conf 添加配置:notify-keyspace-events "Ex" //過時時間監聽生效】oop

二、啓動監聽key過時測試

登陸進入redis-cli 客戶端,執行:( 訂閱一個或者多個符合pattern格式的頻道)spa

PSUBSCRIBE __keyevent@*__:expired

而後該客戶端處於監聽狀態,若是有key過時,則列出code

Redis中發佈與訂閱只有簡單的6個命令。即:對象

訂閱一個或者多個符合pattern格式的頻道 PSUBSCRIBE pattern [pattern ...] 發佈消息到chanel中 PUBLISH channel message 查看訂閱與發佈系統狀態 PUBSUB subcommand [argument [argument ...]] 退訂全部符合格式的頻道 PUNSUBSCRIBE [pattern [pattern ...]] 訂閱一個或者多個頻道 SUBSCRIBE channel [channel ...] 取消訂閱頻道 UNSUBSCRIBE [channel [channel ...]] --------------------

 

測試:blog

三、另外開啓一個客戶端,添加test 爲key,並設置5秒過時事件

setex test 5 testevent

5秒後,監聽窗口顯示:

 pmessage

__keyevent@*__:expired

__keyevent@0__:expired

test

 

 

4.接下來上python代碼

#-*- coding:utf-8 -*- import time from redis import StrictRedis #建立redis鏈接 redis = StrictRedis(host='localhost', port=6379) #建立一個pubsub對象,該對象訂閱一個頻道並偵聽新消息 pubsub = redis.pubsub() #pubsub.psubscribe('__keyspace@0__:*') # 發佈監聽key失效的訂閱 pubsub.psubscribe("__keyevent@0__:expired") #經過無限循環等待事件 print('Starting message loop') for data in pubsub.listen(): print(data)

 

此時咱們運行python代碼,而後開一個redis-cli,搞一個keysvalue 

setex keys 5 value 

5秒之後keys會過時

python會打印 {'type': 'pmessage', 'pattern': b'__keyevent@0__:expired', 'channel': b'__keyevent@0__:expired'
 'data': b'keys'}
相關文章
相關標籤/搜索