此用例的最佳Redis数据结构

时间:2019-06-21 04:57:29

标签: redis stackexchange.redis

我有一个具有5000行和200万列的2D数组,存储的值只是一个布尔值0或1。什么是最适合在Redis中存储此用例的Redis数据结构?

2 个答案:

答案 0 :(得分:3)

一种直接的方法是将数组存储为字符串,并使用bit commands对其进行操作。这应该导致最少的内存使用,并且SETBITGETBIT均为O(1)。

如果数据可以放入Redis字符串的512MB limit中,则可以只使用一个字符串。但是,您提供的大小太大,因此另一种方法是将每一行存储为单独的字符串。

答案 1 :(得分:0)

您可以在Redis实例中创建5000个数据库,然后用值“ 1”的列索引保存每一行,而不是保存所有200万列。通过这样做,也许您可​​以将每一行的大小减小到一百万个长度。然后,在反序列化时,可以通过编程方式构建数组的初始值。

//example: row -0 - columns: 00101....1

save [2,4,...,1999999]  // considering zero based indexing