【问题标题】:How to Get all values from a bitmap in Redis?如何从 Redis 中的位图中获取所有值?
【发布时间】:2018-11-05 11:10:50
【问题描述】:

我有一个跨时间范围存储的位图。假设如果有用户请求一分钟,我会将位设置为 1。现在我希望 redis 中的完整位图数组知道用户模式。

我会做这样的事情。其中 5 和 10 是分钟。

setbit userpattern 5 1
setbit userpattern 10 1

我需要这样的东西

getallbits user pattern 
0000100001 -> result

我有任何命令可以获取 redis 中的所有位值吗?如果没有,redis中是否有其他可能的方式来解决这种情况。

【问题讨论】:

    标签: bitmap redis


    【解决方案1】:

    您可以使用GETRANGE 命令并注意您需要对齐您的位。或者,v3.2 及更高版本的BITFIELD 命令更合适(至少对于高达 64 位的模式 atm)。

    【讨论】:

    • 我将使用 Getrange。但是如何对齐位?我尝试过将十六进制字符串转换为位数组的 sn-ps。但它不起作用。任何关于这方面的想法都会很棒。
    • 每个字符都是一个字节。当你 GETRANGE 时,你基本上是在阅读 8 位的倍数。
    • 你能添加一些redis cli的例子来检索所有设置位的数量吗? bitpos 只返回第一位。谢谢
    • @user2737926 你试过BITCOUNT
    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2017-04-03
    • 2017-08-13
    • 2013-10-21
    • 2015-08-24
    • 1970-01-01
    • 2015-12-28
    • 2014-03-10
    相关资源
    最近更新 更多