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:*")