1. 程式人生 > >批量刪除Redis中hash map的指定pattern的key

批量刪除Redis中hash map的指定pattern的key

Redis並沒有直接給出批量刪除hash map鍵的命令,寫個python函式跑指令碼吧。

def del_hkeys(pattern) :
    cnt = redis.Redis(host='192.168.1.115',port=6381,db=2)
    key_dict={}
    keys = cnt.keys(pattern);
    for key in keys:
        subkeys = cnt.hkeys(key)
        key_dict[key] = subkeys
    pipe = cnt.pipeline(transaction=False)
    counter=0
    for key in key_dict.keys():
        subkeys = key_dict[key]
        for subkey in subkeys:
            cnt.hdel(key, subkey)
            counter+=1
            if counter > 10000:
                pipe.execute()
    pipe.execute()

使用 del_hkeys("week:*")