关于python:memcahed-的-python-sdk-如何批量获取memcahed的key

7次阅读

共计 569 个字符,预计需要花费 2 分钟才能阅读完成。

在 memcached 的 Python SDK 中,能够应用 get_multi 办法来获取多个 key 的值。这个办法承受一个 key 列表作为参数,并返回一个字典,蕴含每个 key 对应的值。字典中还蕴含一个 cas 字段,记录每个 key 对应的 cas 值,用于 cas 操作。在这个字典中,每个 key 对应的值可能为 None,示意该 key 不存在于 memcached 中。

如果须要获取 memcached 中的所有 key,能够先应用 stats 命令获取以后所有的 key 列表,而后再应用 get_multi 办法获取每个 key 对应的值。具体代码示例如下:

import memcache

mc = memcache.Client(['127.0.0.1:11211'])

# 获取所有 key 列表
stats = mc.get_stats('items')
keys = []
for server, stats in stats.items():
    for key_stats in stats:
        if 'number' in key_stats:
            keys.append(key_stats['key'])

# 获取所有 key 对应的值
values = mc.get_multi(keys)

须要留神的是,如果 memcached 中存储的 key 数量十分大,这种形式可能会导致性能问题。因而,在理论利用中,应该尽量避免获取 memcached 中所有的 key。

正文完
 0