1. 程式人生 > 資料庫 >python redis 批量設定過期key過程解析

python redis 批量設定過期key過程解析

這篇文章主要介紹了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 命令 批量設定過期時間

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。