我是redis的新手,所以如果这个问题看起来很幼稚我会道歉。我想创建以下类型的哈希:
item = {{"bititem":00001010000100...001010},
{"property":1}}
其中bititem是由setbit创建的位数组,属性是一个简单的整数值。有没有办法在redis中执行此操作,还是必须创建不同的对象?
答案 0 :(得分:1)
从您的示例中,我不清楚为什么您需要bititem
附近的额外深度级别。
此外,我不清楚你之后想要做什么。所以我给你三个场景:
<强> 1。序列化强>
如果数据涉及多个级别,您始终可以序列化数据。效率最高的是MsgPack
,其次是JSON。您可以在需要时对Lua-Redis中的数据进行反序列化。
<强> 2。散列:强>
如果您不需要多个级别,只需执行以下操作:
HSET item:01 bititem 00001010000100...001010
HSET item:01 property 1
仅执行此操作,如果确实需要提取不同的数据名称经常。单独的成员有一些开销。一般来说,我更喜欢序列化整个对象(使用SET
或HSET
)。
第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