Redis 实现统计在线人数、每日签到功能

Redis About 638 words

场景

  • 统计用户每日签到情况
  • 统计在线人数(比HyperLogLog更精确)

SETBIT key offset value

可用版本: >= 2.2.0 时间复杂度: O(1)

  • key所储存的字符串值,设置或清除指定偏移量上的位(bit)
  • 位的设置或清除取决于value参数,可以是0也可以是1
  • key不存在时,自动生成一个新的字符串值
  • 字符串会进行伸展(grown)以确保它可以将value保存在指定的偏移量上。当字符串值进行伸展时,空白位置以0填充
  • offset参数必须大于或等于0,小于2^32(bit映射被限制在512MB之内)
setbit online_hc 1000 1
# 输出:(integer) 0

getbit online_hc 1000
# 输出:(integer) 1

BITCOUNT key [start] [end]

可用版本: >= 2.6.0 时间复杂度: O(N)

计算给定字符串中,被设置为1的比特位的数量

  • 一般情况下,给定的整个字符串都会被进行计数,通过指定额外的startend参数,可以让计数只在特定的位上进行
  • startend参数可以使用负数值: 比如-1表示最后一个字节,-2表示倒数第二个字节,以此类推
  • 不存在的key被当成是空字符串来处理,因此对一个不存在的key进行BITCOUNT操作,结果为0
bitcount online_hc
# 输出:(integer) 1
Views: 5,759 · Posted: 2019-04-08

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh