gpt4 book ai didi

performance - 从 Redis SETS 获取数据是否比 HSETS 更快或更高效?

转载 作者:可可西里 更新时间:2023-11-01 11:12:26 24 4
gpt4 key购买 nike

我目前有一个场景,我们使用 REDIS 在 散列集 HSET 中存储字符串 field-value 对。

使用散列集而不是集合的最初原因是在 GUI 搜索栏中使用 HSCAN 检索记录比仅仅使用 SCAN 更容易,因为它更容易获取要在 COUNT 字段中使用的散列长度。

我在 Redis 文档中读到,GETHGET 命令的执行时间复杂度为 O(1),但我的团队成员认为,如果我存储所有单个键中的值,然后它基本上在 HGET 期间返回整个哈希,而不是我需要的单个 field-value

所以对于一个虚构但相似的例子:

  • 我有一个 Redis 实例,其中包含一个名为 users 的哈希集。
  • 散列集有 150,000 个 field:valueusername:email

如果当我执行 hget users coolguy 时,返回的是整个哈希还是用户 coolguy 的电子邮件?

最佳答案

首先,HSET不是哈希集,它创建的是哈希表。 redis中的hash table和set(其实就是hash set)背后的机制是一样的,区别主要在于hash table是有值的。

回答你的问题:

If when I execute hget users coolguy, is the entire hash getting returned or just the email for user coolguy?

只是该用户的电子邮件。您还可以使用 HMGET 一次获取多个用户的电子邮件。对于您获取的每个用户,它是 O(1),对于 n 个用户,它是 O(n)。

关于performance - 从 Redis SETS 获取数据是否比 HSETS 更快或更高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55052043/

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