首页 > 解决方案 > 如何获取Redis位图中设置位的所有位置?

问题描述

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

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

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

有人知道更好的解决方案吗?我真的很感激任何评论。

标签: redis

解决方案


您可以迭代调用该BITPOS命令以查找 1 位的偏移量,每次更改起始位置。

如果您的应用程序对密集字段敏感,您可以采取分而治之的方法,通过对起始段执行BITCOUNT来查找位图中的高影响区域。


推荐阅读