当前位置: 首页 > 知识库问答 >
问题:

Redis键结构

冷宏茂
2023-03-14

在Redis中创建键时,我使用“:”格式,并将其与URL结构类似地处理。

但如果该结构本身包含键-值类型组合呢?有人把钥匙放在结构里吗?

虚构示例

在某些方面,我认为选项A的结构中有力量,但也给关键增加了很多复杂性。

想法?

共有1个答案

裴弘
2023-03-14

在记住你编的例子(试着用一个实际的例子,你会得到更好的答案)的同时,我不得不说两者都不是。

我会使用一个ID作为密钥,很可能是一个int。然后我将每个键/值对作为哈希成员和值放在选项A中。

例如:

为什么?保留字段以描述数据(在选项b中丢失了这些字段),哈希比字符串具有更好的内存优势,并且降低了键结构的复杂性,更不用说将短整数用作键名比长字符串具有更好的内存优势了。

此外,您有一种节省内存的方法来将索引创建为整数集。例如,一个名为“country:1”的键可以是一组条目ID,然后它为您提供了一种方法来“拉出国家ID 1的所有条目”--在示例中是美国。通过使用整数,您可以以一种非常高效的内存方式存储这些数据,而只需使用一个查找表。这甚至可以在lua中完成,以避免网络跳转。

可能的组合和条目的范围越大,节省的内存就越有价值。如果您有几百万或几十亿个它们,您将希望遵循整数-ID&查找路线。如果您需要分片数据(无论是服务器端还是客户端),这也将为您提供良好的设置。

 类似资料:
  • 主要内容:了解key的特点,Redis key命令格式,Redis键命令汇总,常用命令演示Redis 是一种键值(key-value)型的缓存型数据库,它将数据全部以键值对的形式存储在内存中,并且 key 与 value 一一对应。这里的 key 被形象的称之为密钥,Redis 提供了诸多操作这把“密钥”的命令,从而实现了对存储数据的管理。 您可以把 key 看成 value 的变量,通过检索 key 就可以找到对应的 value 值。为了更加全面的了解 key,我们将从以下三个维度做

  • 我在Redis 3.1.6版中使用PHP-Redis 生产 然而

  • 问题内容: 我在Redis(Spring Data Redis)中有以下键, 如果要根据 ID /名称/站点 进行排序,该怎么做? 和, 不工作。 问题答案: 该代码位于文章的最后,如果您熟悉redis中的多hset键排序的原理,请跳过以下内容并直接阅读代码。 Redis Sort旨在对List / Set / Zset中的字段进行排序,但是该方法可用于根据所需的指定指标对多键进行排序。我们可以使

  • 问题内容: 我想使用camel-redis设置键/值对。我尝试: 但没有喜悦。我得到错误: 尽管有很多有关如何订阅的示例,但我找不到有关如何设置键/值对的单个示例。我该怎么做? 问题答案: 和 (请注意,它们区分大小写)是消息头而不是URI参数

  • 假设我想存储用户首选项...简单的如下所示: 在redis缓存中存储这些内容的最佳、性能最好的方法是什么(针对读取进行了优化)? 层次结构(值的哈希) 还有一个相关的问题...有什么理由不把用户偏好存储在redis vs域sql数据库中吗? 还有一个相关的问题……将所有用户存储在一个名为“用户”的根键下是不是一个坏主意?

  • 问题内容: Redis中密钥的正常命名约定是什么?我已经看到值之间有分隔符,但是我不确定正常的约定是什么,为什么? 对于用户,您会做类似… 如果用户的ID是 您是否可以仅查询密钥的开头以返回所有用户? 我主要是希望通过研究对人们有用的方式以及他们为什么选择它们的方式来避免将来出现任何问题。 问题答案: Redis中密钥的正常命名约定是什么?我已经看到了以:分隔的值,但是我不确定正常的约定是什么,或