java吧 关注:1,270,135贴子:12,775,264
  • 19回复贴,共1

关于redis做统计问题...

只看楼主收藏回复

最近在做一个统计app在线人数的任务
自己查了查资料,也有自己的想法
我想这用redis记录在拦截器中记录访问APp的用户的Id,并设置每条数据的过期时间,(打算设置成5分钟过期的样子),这样我就能知道redis中5分钟内没有过期的数据的数量从而知道app的在线人数。
不知道这么想是不是正确。希望你们有什么好的方法可以提供一下。
另外有些问题,关于redis给每条数据设置过期时间。用那种数据类型,怎么设置才能过期后就没有这条数据了。


IP属地:北京1楼2017-02-13 11:37回复
    @羔羊Merry
    大神,我能请你吃饭么


    IP属地:北京2楼2017-02-13 11:39
    回复
      2025-07-20 04:35:36
      广告
      @羔羊Merry


      IP属地:北京3楼2017-02-13 11:40
      回复
        不需要过期时间,只要记录用户的最近时间就行了,每一次拦截,更新用户的最近时间,后台有个定时器,定时扫描redis记录,时间在5分钟内的用户


        IP属地:浙江4楼2017-02-13 11:56
        收起回复
          大概我是这么想的。感觉省事。。


          IP属地:北京5楼2017-02-13 12:10
          回复
            可以使用zset来在score里存入时间标识,
            但是这样的缺点是不是只要每次经过拦截器就会做刷新操作。感觉没有必要这样。
            如果有过期时间来做的话,那么不过期就不做操作,过期他操作api才增加。这样会不会节省一点,
            当然,这都是我个人认为。求大神指教。。。。


            IP属地:北京6楼2017-02-13 12:17
            回复
              萌新没人理


              IP属地:北京7楼2017-02-13 12:18
              收起回复
                java操作redis的时候,put数据的时候,有个带过期时间的方法的
                按照你的思路,把过期时间放进去,就OK了的
                到时候统计在线人数的时候,直接去redis里面取数据,过期的数据自动就消失了的。


                11楼2017-02-13 13:48
                收起回复
                  2025-07-20 04:29:36
                  广告
                  最近修仙头疼难受
                  正在办离职 在家休养(玩耍)一段时间


                  IP属地:广东12楼2017-02-13 14:35
                  收起回复
                    用户登录之后统计id或者用户编码之类的东西保存到redis,拼成某种格式的字符串或者好解析的格式,设置永久,用户注销时从redis中删除,你要统计在线人数就或者在线用户的资料就好办了


                    IP属地:湖北13楼2017-02-15 19:04
                    收起回复