当前位置: 首页 > news >正文

Java面试场景题(1)---如何使用redis记录上亿用户连续登陆天数

感谢uu们的观看,话不多说开始~

对于这个问题,我们需要先来了解一下~

海量数据都可以用bitmap来存储,因为占得内存小,速度也很快

我大概计算了一下~

完全够:
String类型=512M

1byte = 8个bit位 = 8个状态

512M=1024byte*1024*512*8=4294967296个状态,所以呢,用bitmap我们的内存是可以存下的

bitmap 0 0 0 0 0 0 0 0 0 0   0   0  0 

            0 1 2 3 4 5 6 7 8 9 10 11 12 ....4294967296

 主要怎么使用呢?

连续签到或者连续登陆?

可以用每天或者用户Id两个维度来存储bitmap

但是存储方式不一样,统计的方式也不一样

如:(根据每天)(适用用户量多的)

 前提(Id唯一的数字,比如id为5),那么你第一天 用户5 登录了,你可以存储为一...第二天...二...以此类推,到最后一天,以当天为起点,然后往前面推算,凡是碰到1的,就把他给统计,碰到0,就不再给用户继续统计,即可!但缺点(如图所示),不建议统计超过30天(如游戏签到)

因为统计太长内存变多数量增加,30天就设置key为30,过期就结束~         

    

http://www.lryc.cn/news/464933.html

相关文章:

  • Element UI
  • ②PROFINET转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • python+Mosh网课笔记04
  • 【微服务】全面构建微服务监控体系:确保系统稳定与性能优化的关键
  • Gin框架操作指南08:日志与安全
  • 鸿蒙系统 VS 安卓系统,谁将引领未来移动操作系统?
  • PyTorch 中 functional.py 文件介绍
  • SQL Injection | SQL 注入 —— 报错盲注
  • 网络通信与并发编程(四)操作系统、进程理论、开启进程的两种方式
  • Java--集合(三)之vectorlinkedlisthashset结构
  • upload-labs Pass-04
  • 如何修改jupyter notebook的工作目录
  • 23种设计模式具体实现方法
  • cisco网络安全技术第3章测试及考试
  • 数据结构练习题5(链表和栈)
  • 计算机网络408真题解析(湖科大教书匠)
  • uniapp+vue3+uview-plus修改默认样式
  • 数控机械制造工厂ERP适用范围有哪些
  • 华为配置 之 Console线路配置
  • 小米等手机彻底关闭快应用
  • 【每日一题】24.10.14 - 24.10.20
  • CMake与Qt4/Qt5的结合使用指南
  • TwinCAT3添加PLC轴,并建立PLC轴与NC轴的链接
  • Linux操作系统如何制作U盘启动盘
  • 如何防止SpringBoot中的jar反编译?解决相关报错及踩到的坑
  • Axios 基本使用
  • 前端大佬都在用的actionDelegationMiddleware究竟有多香?
  • 解决k8s集群中安装ks3.4.1开启日志失败问题
  • Qml-Item的Id生效范围
  • 【配色网站分享】