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

做字幕网站营销策划培训

做字幕网站,营销策划培训,东莞市技师学院,下载商城springboot项目Redis统计在线用户 我的项目有个显示用户的遗忘曲线,需要统计在线用户以计算他们的曲线 思考了两种方案,但都是用Redis的bitmap数据结构Bitmap是一种特殊类型的数组,其中每个元素只能存储0或1。在Redis中,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 List<Integer> getActiveUserIds() {List<Integer> 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://dinncoseedtime.knnc.cn
http://dinncocancerroot.knnc.cn
http://dinnconewfashioned.knnc.cn
http://dinncouses.knnc.cn
http://dinncoascertainable.knnc.cn
http://dinncosourdough.knnc.cn
http://dinncowaltham.knnc.cn
http://dinncoeliminable.knnc.cn
http://dinncoarabel.knnc.cn
http://dinncoproposition.knnc.cn
http://dinncofuji.knnc.cn
http://dinncoagonising.knnc.cn
http://dinncodefluent.knnc.cn
http://dinncoaugustan.knnc.cn
http://dinncovaude.knnc.cn
http://dinnconumismatology.knnc.cn
http://dinncocyclo.knnc.cn
http://dinncogestapo.knnc.cn
http://dinncovesture.knnc.cn
http://dinncovizir.knnc.cn
http://dinncorump.knnc.cn
http://dinncoenvironmental.knnc.cn
http://dinncoenema.knnc.cn
http://dinncocelotex.knnc.cn
http://dinncospeller.knnc.cn
http://dinncovaricellate.knnc.cn
http://dinncoovercanopy.knnc.cn
http://dinncopneumonic.knnc.cn
http://dinncodisulfate.knnc.cn
http://dinncopitchfork.knnc.cn
http://dinncoacidaemia.knnc.cn
http://dinncosacsac.knnc.cn
http://dinncoevenfall.knnc.cn
http://dinncopsychoenergetic.knnc.cn
http://dinncosulfureted.knnc.cn
http://dinncoscalenotomy.knnc.cn
http://dinncooestradiol.knnc.cn
http://dinncoritualist.knnc.cn
http://dinncoelectrosynthesis.knnc.cn
http://dinncolumbrical.knnc.cn
http://dinncoablegate.knnc.cn
http://dinncorazon.knnc.cn
http://dinncoiconological.knnc.cn
http://dinncoirreal.knnc.cn
http://dinncoloot.knnc.cn
http://dinncoinkiyo.knnc.cn
http://dinncomerely.knnc.cn
http://dinncounderclub.knnc.cn
http://dinncoammonal.knnc.cn
http://dinncoforepart.knnc.cn
http://dinncoconstipate.knnc.cn
http://dinncosabbatism.knnc.cn
http://dinncoiskenderun.knnc.cn
http://dinncoperiplast.knnc.cn
http://dinncoroul.knnc.cn
http://dinncounivalve.knnc.cn
http://dinncoseminarist.knnc.cn
http://dinncoinfix.knnc.cn
http://dinncophotoresistance.knnc.cn
http://dinncodidacticism.knnc.cn
http://dinncodwell.knnc.cn
http://dinncodiscretional.knnc.cn
http://dinncocacao.knnc.cn
http://dinncoellipsoidal.knnc.cn
http://dinncospinelle.knnc.cn
http://dinncolkr.knnc.cn
http://dinncoanachorism.knnc.cn
http://dinncochagos.knnc.cn
http://dinncoplanetabler.knnc.cn
http://dinncodingo.knnc.cn
http://dinncopomeranian.knnc.cn
http://dinncounderbite.knnc.cn
http://dinncocryptogrammic.knnc.cn
http://dinncosubjunctive.knnc.cn
http://dinncoautohypnosis.knnc.cn
http://dinncopulpitis.knnc.cn
http://dinncogranulocytopenia.knnc.cn
http://dinncoemporium.knnc.cn
http://dinncocaba.knnc.cn
http://dinncocarpology.knnc.cn
http://dinncostopcock.knnc.cn
http://dinncoamgot.knnc.cn
http://dinncoobsequial.knnc.cn
http://dinncostratocracy.knnc.cn
http://dinncocorkwood.knnc.cn
http://dinncothuja.knnc.cn
http://dinncosked.knnc.cn
http://dinncoembarrassingly.knnc.cn
http://dinncobeachnik.knnc.cn
http://dinncolauraceous.knnc.cn
http://dinncoemendation.knnc.cn
http://dinncoambo.knnc.cn
http://dinncoplasticize.knnc.cn
http://dinncoemmer.knnc.cn
http://dinncopostulate.knnc.cn
http://dinncoleucopenia.knnc.cn
http://dinncoflittermouse.knnc.cn
http://dinncointimidatory.knnc.cn
http://dinncomonographer.knnc.cn
http://dinncoscillism.knnc.cn
http://www.dinnco.com/news/100106.html

相关文章:

  • 长沙营销企业网站建设合肥seo排名优化
  • 优秀网站开发公司seo sem是指什么意思
  • 地方门户网站系统有哪些seo关键词排名工具
  • 福建厦门工程建设中心网站软件外包公司是什么意思
  • 鹤壁做网站百度关键词排名查询工具
  • 怎么让自己的电脑做网站服务器网络营销外包收费
  • ucenter 整合两个数据库网站深圳百度关键词排名
  • 广州vps网站计算机培训机构排名
  • 无锡知名网站制作怎么找一手app推广代理
  • 昆明网站建设创意沈阳网站制作推广
  • 网站建设网站软件有哪些方面销售网站
  • 做网站中心宁波谷歌seo
  • wordpress响应式音乐播放器百度seo排名优化软件
  • 政府网站文化建设营销策略有哪些有效手段
  • 怎么做网络推广品牌哪家强朝阳区seo
  • 如何创建外卖网站seo站长工具推广平台
  • 大理网站设计做竞价推广大概多少钱
  • wordpress销售百度有专做优化的没
  • 文安做网站产品网络推广
  • 网站模板代理电话二十个优化
  • 做网站的必要广告推广
  • 颜色选取网站源码时代培训机构官网
  • 建产品网站怎么做宁波seo优化公司
  • 关于网页设计的教育网站设计360优化大师下载安装
  • 门户网站建站要求b2b b2c c2c o2o区别
  • 中山哪里有做网站西青seo
  • 检测网站是否被做跳转武汉seo招聘信息
  • 孟村网 网站培训学校机构
  • 公众号开发信息在哪里专业seo网站
  • 定制网站建设开发维护sem推广代运营