redis 批量删除keys
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import redis
pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
rds = redis.Redis(connection_pool=pool)
pipe = rds.pipeline(transaction=False)
f = open('del_keys.txt', 'w')
for key in rds.scan_iter(match='name*', count=10000):
# do something with keys
f.write(key + '\n')
start_time = time.time()
SUCCESS_DELETED = 0
with open('del_keys.txt') as kf:
while True:
lines = kf.readlines(1024 * 1024)
if not lines:
break
else:
taskkey_list = [i.strip() for i in lines]
SUCCESS_DELETED += rds.delete(*taskkey_list)
print SUCCESS_DELETED
end_time = time.time()
print end_time - start_time, SUCCESS_DELETED