Redis 哈希中的子属性



我对 Redis 很陌生,可能错过了一些明显的东西,所以如果我错过了一些简单的东西,请原谅我。

在 Redis 的哈希中,我有一组想要使用 HMSET 设置的属性,但我的一个属性需要包含子属性。它是指具有子属性"名称"、"位置"和"电话号码"的卖家属性。这是如何工作的?我尝试设置的哈希之一如下所示:

HMSET广告:1辆车:"2018雪佛兰科罗拉多" 年份:"2018" 里程:"4" 卖家:(需要子属性)

谢谢!

Redis 不支持哈希或其任何数据结构中的子属性。因此,您必须构建自己的约定来存储子属性。

人们通常会做以下其中一项——

  1. 您可以将卖家移动到它自己的哈希中,然后仅将卖家 ID 存储在您的汽车对象中。检索应用程序中的两个对象并将其合并。如果您有 1 个以上的卖家,这种方法也可以很好地扩展。只需将所有 ID 存储在集合或列表中即可。

  2. 或者您可以"展平"对象。例如,存储 3 个字段"seller.name"、"卖方.电话"、"卖方.位置",而不是 1 个字段"卖方"。一些 redis 库(参见 java 中的 spring)可以自动为您完成此转换。

  3. 不要使用哈希,而是序列化对象并将其存储在 redis 字符串中。有多种方法可以序列化复杂对象。您可以使用 JSON、消息包、协议缓冲区等。或者,可以使用编程语言的默认序列化机制。

最新更新