基于redis实现亿级别活跃度以及登录次数统计

动辄就是千万过亿级别的访问量,LZ工作过的都是小公司,没遇到过这么大的访问量。网上搜了下相关的解决方案,特此记录!

一、bitmaps

  1. 定义

        redis提供的bitmaps这个“数据结构”可以实现对位的操作,其本身不是一种数据类型而是是字符串,但它可以对字符串的位进行操作。

  • 可以把bitmaps想象成一个以位为单位数组,数组中的每个单元只能存0或者1,数组的下标在bitmaps中叫做偏移量。
  • 单个bitmaps的最大长度是512MB,即2^32个比特位。
    1. 命令
  • 设置值 setbit key offset value
  • 获取值 getbit key offset
  • 统计bitmaps值为1的个数 bitcount key [start end]
  • 计算交集 bitop and destkey key[key…]
  • 计算并集 bitop or destkey key[key…]
  • 计算差集 bitop xor destkey key[key..]

    setbit/getbit命令中offsetbitcount命令中startend有个对应关系,offset*8=start/end

二、实现