Redis Hash / Set存储多种类型

时间:2014-04-21 11:12:54

标签: redis

我是redis的新手,所以如果这个问题看起来很幼稚我会道歉。我想创建以下类型的哈希:

item = {{"bititem":00001010000100...001010},
       {"property":1}}

其中bititem是由setbit创建的位数组,属性是一个简单的整数值。有没有办法在redis中执行此操作,还是必须创建不同的对象?

1 个答案:

答案 0 :(得分:1)

从您的示例中,我不清楚为什么您需要bititem附近的额外深度级别。

此外,我不清楚你之后想要做什么。所以我给你三个场景:

<强> 1。序列化

如果数据涉及多个级别,您始终可以序列化数据。效率最高的是MsgPack,其次是JSON。您可以在需要时对Lua-Redis中的数据进行反序列化。

<强> 2。散列:

如果您不需要多个级别,只需执行以下操作:

HSET item:01 bititem 00001010000100...001010
HSET item:01 property 1

仅执行此操作,如果确实需要提取不同的数据名称经常。单独的成员有一些开销。一般来说,我更喜欢序列化整个对象(使用SETHSET)。

第3。按位启用:

如果您想使用Redis的bitwise操作,则需要使用简单的字符串(GET/SET)。例如:

SET item:01:bititem "00001010000100...001010"
SET item:01:property 1

甚至更好:

SET item:01:bititem "00001010000100...001010"
SET item:01:properties [all-other-properties-serialized-as-msgpack]

希望这有帮助,TW