概述
实现方案
用户登录的时候往redis里面存储一个值(对应的在线人数增1),这个值的key值是和这个用户的唯一识别码(例如userId或者username)有联系,在存储的同时,设置其对应的生命周期,比如30分钟,当用户在网站上点击相关操作时(可以结合AOP去实现),重新刷新这个值为30分钟,如果用户什么都不干,30分钟后,redis里面存储的值消失了(对应的在线人数减1),另外用户注销时,直接删除这个用户对应的数据。而我们在获取在线人数的时候不需要对其进行加减操作,我们只需统计redis里面当前存储的数据的个数即可。
主要基于redis里面的EXPIRE指令
example:
redis> SET mykey "Hello"
OK
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> SET mykey "Hello World"
OK
redis> TTL mykey
(integer) -1
redis>设置了生命周期后,可以用TTL去查看生命周期剩余时间(单位是秒),最后如果时间到了查询值是-2,这时候用GET test去查询值返回的结果就是 空了(nil)
如果没有设置EXPIRE,TTL查看结果返回是-1,表示生命周期无限大。
核心代码实现import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import redis.cl
最后
以上就是可耐画笔为你收集整理的redis 统计数量_使用redis实现在线人数统计的全部内容,希望文章能够帮你解决redis 统计数量_使用redis实现在线人数统计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复