zoukankan      html  css  js  c++  java
  • Redis使用bitmap统计后获取用户id

    大家都知道使用使用redis的bitmap能占用很少的空间就能进行用户的日活统计等

    但是这个时候我们想要获取今天有哪些用户登录了就没有现成的方法来获取了。

    当然,我们可以通过计算把offect(偏移量)算出来。具体代码如下:

    const ioredis = require("ioredis");
    const redis = new ioredis({
      host: "",
      db: 0,
    });
    
    (async () => {
      //获取buffer数据
      const data = await redis.getBuffer("redisKey");
      const userList = [];
      data.forEach((item, index) => {
        userList.push(...getUserID(item, index));
      });
      console.log(userList);
      process.exit(0);
    })();
    
    function getUserID(data, index = 0) {
      const userList = [];
      const offect = index * 8 - 1;
      for (let i = 7; i >= 0; i--) {
        if ((data >> i) & 1) {
          userList.push(8 - i + offect);
        }
      }
      return userList;
    }
  • 相关阅读:
    VijosP1274:神秘的咒语
    2009年浙大 :找出直系亲属
    django用户信息扩展
    缓存
    自定义认证
    自定义admin
    权限的配置和使用
    form表单
    过滤器 自定义查询
    中间件
  • 原文地址:https://www.cnblogs.com/naocanzhishen/p/15637840.html
Copyright © 2011-2022 走看看