python读取redis中键对应的值_使用python获取Redis数据库中的所有键

小编典典

采用 scan_iter()

scan_iter()优于keys()大量密钥,因为它为您提供了可以使用的迭代器,而不是尝试将所有密钥加载到内存中。

我的redis中有一个1B记录,而且我永远都无法获得足够的内存来一次返回所有密钥。

一对一扫描键

这是一个python代码段,scan_iter()用于从商店中获取与某个模式匹配的所有键,并一一删除它们:

import redis

r = redis.StrictRedis(host='localhost', port=6379, db=0)

for key in r.scan_iter("user:*"):

# delete the key

r.delete(key)

批量扫描

如果要扫描的密钥列表非常大(例如,大于100k的密钥),则分批扫描它们将更加高效,如下所示:

import redis

from itertools import izip_longest

r = redis.StrictRedis(host='localhost', port=6379, db=0)

# iterate a list in batches of size n

def batcher(iterable, n):

args = [iter(iterable)] * n

return izip_longest(*args)

# in batches of 500 delete keys matching user:*

for k

你可能感兴趣的:(python读取redis中键对应的值_使用python获取Redis数据库中的所有键)