我对Redis很新,可能错过了一些明显的东西,所以请原谅我,如果我错过了一些简单的话。
在Redis的哈希中,我有我想用HMSET设置的一组属性,但我的一个属性需要在其中包含子属性。它意味着是具有子属性"名称","位置"和"电话号码的卖家属性。"这是如何运作的?我尝试设置的其中一个哈希看起来像:
hmset ad:1 car:" 2018 Chevy Colorado"年份:" 2018"数:" 4"卖方:(需要子属性)
非常感谢!
答案 0 :(得分:1)
Redis不支持散列或其任何数据结构中的子属性。因此,您必须构建自己的约定来存储子属性。
人们通常会做以下其中一项 -
您可以将卖家移入其自己的哈希值,然后仅将卖家ID存储在您的汽车对象中。检索应用程序中的两个对象并将其合并。如果您有超过1个卖家,这种方法也可以很好地扩展。只需将所有ID存储在一个集合或列表中。
或者你可以"展平"物体。例如,代替1个字段"卖家",存储3个字段" seller.name"," seller.phone"," seller.location&#34 ;。一些redis库(请参阅java中的spring)可以自动为您执行此转换。
不使用哈希,而是序列化对象并将其存储在redis字符串中。有多种方法可以序列化复杂对象。您可以使用JSON,messagepack,协议缓冲区等。或者您可以使用您的编程语言的默认序列化机制。