python redis 批量設置過期key


在使用 Redis、Codis 時,我們經常需要做一些批量操作,通過連接數據庫批量對 key 進行操作:

  關於未過期:

    1.常有大批量的key未設置過期,導致內存一直暴增

    2.rd需求 掃描出這些key,rd自己處理過期(一般dba不介入數據的修改)

    3.dba 批量設置過期時間,(一般測試可以直接批量設置,線上謹慎操作)

  通過一段代碼,批量實現給未設置過期的key,設置24小時過期

 

 1 from redis import Redis
 2 def setExpiredKeys():
 3     try:
 4         if redis_pass == 'none':
 5             redisclient = Redis(host=redis_host, port=redis_port,db=0)
 6         else:
 7             redisclient = Redis(host=redis_host, port=redis_port, password=redis_pass)
 8         for key in redisclient.scan_iter(count=500):
 9             keyttl = redisclient.execute_command('ttl', key)
10             if keyttl == -1: # 此處掃到key,可以進行導出處理或者執行命令
11                 redisclient.expire(key, 86400)
12     except Exception as e:
13         raise e
14 if __name__ == '__main__':
15     redis_host = '192.168.0.1'
16     redis_port = 6379
17     redis_pass = '123456'
18     setExpiredKeys()
代碼功能:
通過導入redis模塊中的Redis類函數,訪問redis數據;建立Redisclient客戶端,通過scan_iter 每次獲取500個key;對key執行 ttl 命令,通過返回值判斷key是否設置了過期,如果沒有設置,就通過 expire 命令 批量設置過期時間
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM