在 Redis 中获取多个哈希值的最有效方法?

发布于 2024-10-16 21:37:35 字数 341 浏览 1 评论 0原文

所以我已经阅读了 这篇文章 关于没有 < code>MGET 类似于 Redis 哈希。答案之一说使用 MULTI/EXEC 批量执行操作,这确实适用于列表和常规键,但不幸的是,不适用于哈希。然而,现在我正在通过网络对我想要检索的每个哈希进行调用,这对我来说似乎是个坏消息。

所以我的问题是:从 Redis 获取多个哈希值的最有效方法是什么,效率标准是网络调用次数最少?我正在使用 Redis 2.0.4,使用 Python 客户端进行编程。谢谢!

So I've already read this post about there not being an MGET analog for Redis hashes. One of the answers said to use MULTI/EXEC to do the operation in bulk, and that does work for lists and regular keys, but not for hashes, unfortunately. Right now, however, I'm doing a call over the wire for every single hash I want to retrieve which seems like bad news to me.

So my question is: what is the most efficient way to get several hashes back from Redis, with the standard of efficiency being the least number of network calls? I'm using Redis 2.0.4, programming with the Python client. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倚栏听风 2024-10-23 21:37:35

最有效的方法是使用管道。

假设您想要给定键的所有内容并且已经知道所有键:

import redis

r = redis.Redis(host='localhost', port=6379, db=0)
p = r.pipeline()
for key in keys:
    p.hgetall(key)

for h in p.execute():
    print h

可以在此处找到有关管道的更多信息:http://redis.io/主题/管道

The most efficient way would be using a pipeline.

Assuming you want everything for a given key and know all the keys already:

import redis

r = redis.Redis(host='localhost', port=6379, db=0)
p = r.pipeline()
for key in keys:
    p.hgetall(key)

for h in p.execute():
    print h

More information about pipelines can be found here: http://redis.io/topics/pipelining

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文