监控Redis过期Key的变化
Redis几近在所有的Web系统中有很重要的存在,它的易用性和速度是遭到非常多人用来代替传统关系型数据库的加速技术,它也有一种独特的特性,这就是支持Key-value下面是可以支持定时任务,也就是可以设置一个key,当这个key过期以后,则可以完成一定的程序,具体来讲,就是需要监控Redis的key过期的情况,当key过期的时候,这里可以添加一些业务的处理方式,此时可使用Redis的keyspace notifications 功能,确切也提供了部份方式,可以增强Redis的使用,首先要开启Redis的keyspace notifications 功能,-notify-keyspace-events,可以在启动的时候添加,或是在redis.conf中设置,这里建议设置为Exg,即包括数据库切换,key过期,key空闲,或是key被删除等等行动,经过设置以后,就能够监听到全部相关的行动,然后就能够进行某些业务处理。可使用一段python 脚本:
“`python
import redis, time
r = redis.StrictRedis(host=’localhost’, port=6379, db=0)
ps = r.pubsub()
ps.psubscribe(‘__keyevent@0__:expired’)
for item in ps.listen():
if item[‘type’] == ‘pmessage’:
key = item[‘data’]
# do something with the expired key
上面的这段脚本可使用redis的publish&subscribe的功能,来监听到是哪一个的key过期的状态,这个脚本每隔一段时间就会检查一次,这样就能够确认key会不会过期,另外需要注意的是,这段脚本只监听那些被设置过期的key,而不会提供key被删除,更新,或是key被重新设置TTL的情况,所以在这类情况下,首先要让开发者可以掌握redis里key的变动情况,以避免造成没必要要的麻烦。
文章来源:丸子建站
文章标题:监控Redis过期Key的变化
https://www.wanzijz.com/view/17434.html