如何获得Redis位图中设置位的所有位置?

时间:2018-10-04 04:58:52

标签: redis

据我所知,我们可以获取/设置单个位并对其进行计数,但是没有命令来检索设置位的所有位置。

我的解决方案是遍历所有可能的索引,并询问是否设置了索引。 这种方式的缺点是,如果密钥包含大量位(例如​​:1,000,000位),则会导致大量的getbits请求。而且我需要事先知道我必须获得哪些索引。

其他解决方案是使用“ get”命令获取密钥的值,然后在客户端进行扫描。但是我正在寻找一种更好的解决方案,它可以利用处理位图中的redis

有人知道更好的解决方案吗?我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以迭代地调用BITPOS command来查找1位的偏移量,从而每次更改起始位置。

如果您的应用程序对密集字段敏感,则可以采用分治法,即对起始端段执行BITCOUNT,以找到位图中的高影响区域。