Redis一次设置多个位

时间:2014-04-18 19:16:14

标签: redis

我是redis的新手,所以我对setbit函数有很多疑问。

我有以下类型的数据集:

{'items':[{'item_1':0001...1000,
           ...
           'item_n':0011...0011}
         ]
}

在每个项目中,有数以万计的10位,并且有数十万个项目。似乎我可以使用以下内容来设置项目:

Redis.setbit('item1', 0, 0)
Redis.setbit('item1', 1, 0)
Redis.setbit('item1', 2, 0)
Redis.setbit('item1', 3, 1)
...
  • 然而,这似乎非常低效。无论如何都要一次设置所有位?
  • 我是否可以将这些组合成一个集合或哈希,以便我可以查找当前设置的项目?它们每天都在变化,我需要知道之前写的是什么,所以我可以相应地分析和删除它。
  • 如何查找以前写过的项目的名称?

1 个答案:

答案 0 :(得分:0)

  • 不,是的。 SETBIT(顾名思义)设置一个位。但是,由于Redis使用字符串数据类型来存储位,您可以在应用程序中构造相关的项目字符串,然后只需在一个笔划中设置它。有关字符串中位的内部表示的更多信息位于Can someone explain redis setbit command?

  • 为了跟踪您已写入并查找的内容,Redis'套装应该很好地完成。将您的项目SADD到一个密钥(可能根据日期命名)并获取使用SSCAN。