gpt4 book ai didi

Redis-python 在一次操作中设置多个键/值

转载 作者:IT王子 更新时间:2023-10-29 05:57:03 24 4
gpt4 key购买 nike

目前我使用基本的 mset 功能来存储键/值;

from common.redis_client import get_redis_client
cache = get_redis_client()
for k,v in some_dict.items():
kw = {'key': value}
cache.mset(kw)

#later:
cache.get('key')

我单独存储每个键/值(例如,不是在一个 json 中)因为存储整个字典会将其变成一个字符串,并且需要我在存储和检索时序列化/反序列化,我真的需要访问单独的键/值(value)观。

我的问题::有没有办法可以一次mset多个键/值?而不是多次写入 redis 数据库?反之亦然,我可以一次访问多次读取(获取)吗? (是的 - 我有很多 redis 事件正在进行并且负载很重。我很关心这个)

最佳答案

在 Agis 评论后更新

如果您使用 Redis-py ,这是目前推荐的用于 python 的 Redis 客户端,您可以使用完全符合您要求的流水线。这是一个简单的例子:

>>> r = redis.Redis(...)
>>> r.set('bing', 'baz')
>>> # Use the pipeline() method to create a pipeline instance
>>> pipe = r.pipeline()
>>> # The following SET commands are buffered
>>> pipe.set('foo', 'bar')
>>> pipe.get('bing')
>>> # the EXECUTE call sends all buffered commands to the server, returning
>>> # a list of responses, one for each command.
>>> pipe.execute()
[True, 'baz']

我不知道你用的是哪个redis客户端,要么它支持流水线,要么你应该考虑切换到redis-py。

看看redis documentation about pipelining ;它解释说,您可以期待 x5 的性能提升 - 但也说明您不能执行太重要的批量操作(每次执行 10 000 次操作是可以的)。

关于Redis-python 在一次操作中设置多个键/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22210671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com