python redis 批量設定過期key過程解析
阿新 • • 發佈:2020-01-09
這篇文章主要介紹了python redis 批量設定過期key過程解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
在使用 Redis、Codis 時,我們經常需要做一些批量操作,通過連線資料庫批量對 key 進行操作:
關於未過期:
1.常有大批量的key未設定過期,導致記憶體一直暴增
2.rd需求 掃描出這些key,rd自己處理過期(一般dba不介入資料的修改)
3.dba 批量設定過期時間,(一般測試可以直接批量設定,線上謹慎操作)
通過一段程式碼,批量實現給未設定過期的key,設定24小時過期
from redis import Redis def setExpiredKeys(): try: if redis_pass == 'none': redisclient = Redis(host=redis_host,port=redis_port,db=0) else: redisclient = Redis(host=redis_host,password=redis_pass) for key in redisclient.scan_iter(count=500): keyttl = redisclient.execute_command('ttl',key) if keyttl == -1: # 此處掃到key,可以進行匯出處理或者執行命令 redisclient.expire(key,86400) except Exception as e: raise e if __name__ == '__main__': redis_host = '192.168.0.1' redis_port = 6379 redis_pass = '123456' setExpiredKeys()
程式碼功能:
通過匯入redis模組中的Redis類函式,訪問redis資料;建立Redisclient客戶端,通過scan_iter 每次獲取500個key;對key執行 ttl 命令,通過返回值判斷key是否設定了過期,如果沒有設定,就通過 expire 命令 批量設定過期時間
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。