python脚本查询redis key的空闲时间

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import redis
import time

FILE_DATA_PATH = '/Users/xiewenda/Desktop/'

def findRedisKey(dbIndex):
    redis_cache = redis.StrictRedis(host="127.0.0.1", port=6379, username=None, password=None, db=dbIndex)
    # pool = redis.ConnectionPool(host='192.168.3.128', port=6379, db=0)
    # r = redis.StrictRedis(connection_pool=pool)
    print("begin")
    print(redis_cache.dbsize())
    begin_pos = 0
    while True:
        result = redis_cache.scan(begin_pos, None, 1000)
        return_pos, datalist = result
        print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())), "return_pos:", return_pos)
        if len(datalist) > 0:
            print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())), "datalist size:", len(datalist))
            for key in datalist:
            	#if redis_cache.ttl(key) > 60 * 24 * 30 | redis_cache.ttl(key) == -1: #剩余过期期间或者没设置过期时间
                if redis_cache.object('idletime',key) > (60 * 60 * 24 * 10):  # 空闲时间大于10天
                    yield key
        if return_pos == 0:
            break
        begin_pos = return_pos
    print("game over")


if __name__ == '__main__':
    dbIndexs = range(16)
    fileName = FILE_DATA_PATH+'redisKey.txt'
    f = open(fileName, 'w')
    for dbIndex in dbIndexs:
        f.write('****************************** db'+str(dbIndex)+' *****************************\n')
        f.writelines(map(lambda key: key.decode('utf-8', errors='ignore')+"\n", findRedisKey(dbIndex)))
        f.write('\n')
    f.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值