据我所知,我们可以获取/设置单个位并对其进行计数,但是没有命令来检索设置位的所有位置。
我的解决方案是遍历所有可能的索引,并询问是否设置了索引。 这种方式的缺点是,如果密钥包含大量位(例如:1,000,000位),则会导致大量的getbits请求。而且我需要事先知道我必须获得哪些索引。
其他解决方案是使用“ get”命令获取密钥的值,然后在客户端进行扫描。但是我正在寻找一种更好的解决方案,它可以利用处理位图中的redis
有人知道更好的解决方案吗?我将不胜感激。
答案 0 :(得分:0)
您可以迭代地调用BITPOS
command来查找1位的偏移量,从而每次更改起始位置。
如果您的应用程序对密集字段敏感,则可以采用分治法,即对起始端段执行BITCOUNT,以找到位图中的高影响区域。