python获取rediskey过期的信息1、使⽤redis key 过期通知,需开启key过期通知功能:
登录进⼊redis-cli 客户端,执⾏:
config t notify-keyspace-events Ex
【或者启动redis前在f 添加配置:notify-keyspace-events "Ex" //过期时间监听⽣效】
2、启动监听key过期
登录进⼊redis-cli 客户端,执⾏:( 订阅⼀个或者多个符合pattern格式的频道)
PSUBSCRIBE __keyevent@*__:expiredtomb sweeping day
然后该客户端处于监听状态,如果有key过期,则列出
Redis中发布与订阅只有简单的6个命令。即:
订阅⼀个或者多个符合pattern格式的频道
PSUBSCRIBE pattern [pattern ...]
发布消息到chanel中
PUBLISH channel message
查看订阅与发布系统状态
PUBSUB subcommand [argument [argument ...]]
购物中心英文
退订所有符合格式的频道
PUNSUBSCRIBE [pattern [pattern ...]]
订阅⼀个或者多个频道
SUBSCRIBE channel [channel ...]
取消订阅频道
UNSUBSCRIBE [channel [channel ...]]
--------------------
测试:
3、另外开启⼀个客户端,添加test 为key,并设置5秒过期レクイエム
kelis>深圳瑞得福国际学校tex test 5 test
5秒后,监听窗⼝显⽰:
pmessage
__keyevent@*__:expired
__keyevent@0__:expired
test
4.接下来上python代码
diglog#-*- 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")
validator
#通过⽆限循环等待事件
print('Starting message loop')
待用咖啡
for data in pubsub.listen():
print(data)
tyrael此时我们运⾏python代码,然后开⼀个redis-cli,搞⼀个keysvalue
tex keys 5 value
5秒以后keys会过期
python会打印
{'type': 'pmessage', 'pattern': b'__keyevent@0__:expired', 'channel': b'__keyevent@0__:expired' 'data': b'keys'}