您好,登錄后才能下訂單哦!
這篇文章主要介紹了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, port=redis_port, 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 命令 批量設置過期時間
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。