1

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

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

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

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

4

1 回答 1

0

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

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

于 2019-11-25T10:25:23.670 回答