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

备用网站怎么做铁岭市网站建设公司

备用网站怎么做,铁岭市网站建设公司,免费成品网站模板,二级网站建设费用springboot项目Redis统计在线用户 我的项目有个显示用户的遗忘曲线#xff0c;需要统计在线用户以计算他们的曲线 思考了两种方案#xff0c;但都是用Redis的bitmap数据结构Bitmap是一种特殊类型的数组#xff0c;其中每个元素只能存储0或1。在Redis中#xff0c;Bitmap实际…springboot项目Redis统计在线用户 我的项目有个显示用户的遗忘曲线需要统计在线用户以计算他们的曲线 思考了两种方案但都是用Redis的bitmap数据结构Bitmap是一种特殊类型的数组其中每个元素只能存储0或1。在Redis中Bitmap实际上是字符串每个字符的每一位都被视为一个独立的位因此一个字符串可以存储多达8*字符串长度的位。 这段代码中markUserActive方法接收一个用户ID作为参数。然后它创建一个键该键由字符串active_users:和当前日期组成格式为ISO_DATE。这样每天都会有一个新的键用于存储当天活跃的用户。 然后它使用redisUtils.setBit方法将用户ID对应的位设置为1。这里用户ID被用作位的索引。例如如果用户ID为10那么第10位将被设置为1。 这样我们就可以通过检查特定位的值来确定用户是否活跃。如果位的值为1那么用户就是活跃的如果位的值为0那么用户就是不活跃的。 这种方法的优点是它可以在非常小的空间内存储大量的信息。此外由于Redis是内存数据库因此这种方法的速度非常快。 方案一 使用心跳包来追踪和统计用户活跃状态客户端每隔30分钟或者一段时间给服务端发送一个心跳服务端获取到用户id然后存储到Redis但这样的话客户端要定时任务且依赖客户端。 方案二 在用户每次请求操作的时候由于我后端配置了Shiro的拦截器判断每次请求是否token过期加入标记用户活跃的逻辑并redis设置过期时间2小时缺点是资源消耗大每次请求都要标记 Overridepublic void markUserActive(int userId) {String key active_users: LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);redisUtils.setBit(key, userId, true);// 设置2小时的过期时间redisUtils.expire(key, 2, TimeUnit.HOURS);}markUserActive(int userId) 方法 这个方法用于标记一个用户为活跃状态。它接收一个用户ID作为参数。方法首先构造一个键键的格式是 “active_users:” 加上当前的日期和时间。然后它在 Redis 数据库中将这个键对应的位由用户ID指定设置为 true表示该用户是活跃的。最后它设置这个键的过期时间为2小时。这意味着如果2小时内没有再次标记该用户为活跃那么这个键就会从 Redis 数据库中删除。 Overridepublic ListInteger getActiveUserIds() {ListInteger activeUserIds new ArrayList();// 当前时间LocalDateTime currentTime LocalDateTime.now();for (int i 0; i 2; i) {// 遍历过去2小时内的键String key active_users: currentTime.minusHours(i).format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);if (redisUtils.hasKey(key)) {// 遍历1000个用户for (int j 0; j 1000; j) {Boolean isUserActive redisUtils.getBit(key, j);if (isUserActive ! null isUserActive) {activeUserIds.add(j);}}}}return activeUserIds;}但是之后测试的时候发现在查找活跃用户的时候并没有找到可能是时间戳精度问题所以修改代码将其key保留到分钟形式String key active_users: LocalDateTime.now().truncatedTo(ChronoUnit.MINUTES).format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
http://www.dnsts.com.cn/news/169509.html

相关文章:

  • 正定网站建设制作公司一个网站的制作特点
  • 烟台市建设局网站建设项目竣工验收公示网站
  • 建设银行网站注销开发公司项目管理部门获奖主持词
  • 网站开发毕业设计文档上海市建设安全协会网站j
  • 广东专业网站优化公司网站不备案可以做百度推广吗
  • 简述网站规划的任务python基础教程是什么课
  • 公司网站打开很慢网页无法访问摄像头
  • 网站横幅广告怎么做自己开发一个app需要什么
  • 什么网站可以做免费广告做平台网站怎么做的
  • 网站开发毕设pptwordpress电商主题完成度
  • 网站幕布拍摄西数网站管理助手
  • 微网站 淘宝客帮开设赌场的网站做美工
  • 辽宁鹤城建设集团网站网站设计的论文
  • 网站SEO的评价北京知名网站
  • 网站seo分析报告案例wordpress 常用钩子
  • 客户管理软件排行上海网站建设优化seo
  • 做自媒体常用的图片网站wordpress 还原主题
  • h5制作企业网站有哪些优势WordPress的博客程序
  • 公司建网站做app要多少钱wordpress 会员登录可见
  • 做网站怎么购买主机个人网站做联盟营销
  • 博物馆建设网站网站推广途径和推广要点的案例讨论
  • 优秀的网站设计案例工业设计产品开发
  • 网站开发拓扑图淘客免费交易网站建设
  • 申请网站空间怎么做百度抓取网站图片
  • 中国建设银行大沥网站游戏开发大亨下载
  • 深圳 网站建设培训学校wordpress首页制作
  • 广元专业高端网站建设网站模板功能
  • 网站建设捌金手指花总四wordpress伪静态标签
  • 建设网站论坛网站做镜像检查漏洞
  • 企业站seo案例分析logo在线设计软件