gpt4 book ai didi

Redis 键结构

转载 作者:可可西里 更新时间:2023-11-01 11:21:23 25 4
gpt4 key购买 nike

在 Redis 中创建键时,我使用“:”格式并将其视为类似于 URL 结构。

但是如果该结构本身包含键值类型组合怎么办?是否将 key 放在结构中?

虚构的例子:

选项 A) "country:usa:manufacturer:ford:vehicle:f150:color"= black

选项 B) "usa:ford:f150:color"= black

在某些方面,我认为选项 A 的结构具有优势,但它也为 key 增加了很多复杂性。

想法?

最佳答案

虽然牢记您编造的示例(请尝试使用实际示例,您会得到更好的答案),但我不会说任何一个。

我会为 key 使用一个 ID,可能是一个 int。然后我将每个键/值对作为散列成员和值放入您的选项 A 中。

例如:

HSET 1 国美国

HSET 1 制造商福特

等等。或者您可以使用 hmset 操作一次设置它们。

为什么?您可以获得将字段描述为数据的好处(您在选项 b 中丢失了),哈希相对于字符串的内存优势,以及 key 结构复杂性的降低,更不用说短整数作为键名与内存的优势一个长字符串。

此外,您有一种节省内存的方法来将索引创建为整数集。例如,名为“country:1”的键可以是一组条目 ID,然后为您提供一种“提取国家 ID 1 的所有条目”的方法 - 在示例中为美国。通过使用整数,您可以获得能够以非常节省内存的方式存储所有这些的好处,而查找表的成本很小。这甚至可以在 lua 中完成以避免网络跳转。

可能的组合和条目的范围越大,节省的内存就越有值(value)。如果您有数百万或数十亿个,您将需要遵循整数 ID 和查找路线。如果您需要分片数据(服务器端或客户端),这也会很好地设置您。

关于Redis 键结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29680748/

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