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'}
相关文章
相关标签/搜索