Redis取出Spring-session共享的session

        公司要求用Redis做一个在线用户共享session,并能够统计出所有在线用户的数量及要能够查看每个用户的信息。

        首先我们要认识到Spring-session共享session之后,你每次只能读取到当前最新session,并不能得到全部的存储到Redis中的数据。解决方法:使用 RedisTemplate的 redisTemplate.keys();则可以根据你的需要读取所有的key,然后根据key调用 redisTemplate.opsForHash().get()查到你要的数据。

        这里要注意:Spring-session共享session之后是有他自己的存储规则的,我们应该根据规则将我们的数据取出。

       主要代码:

Set   keys = redisTemplate.keys("spring:session:sessions:*");  //取出redis中所有session的key ArrayList   userList = new ArrayList();

for(String key : keys){

if(key.indexOf("expires")==-1){

userList.add((UserSession) redisTemplate.opsForHash().get(key, "sessionAttr:userSession")); 

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,083评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,989评论 6 342
  • 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概...
    kelgon阅读 61,308评论 23 625
  • 早安分享~[咖啡] 痛苦的维度: 一、专注于当下,专注于痛点,痛苦就是一维的。很容易无限放大,以至于迷失自己,被痛...
    李文燊阅读 177评论 0 0
  • 为了写篇文,我专门整理了一下以前的习作,花了不少时间。但多亏有了这个整理,竟然感觉自己还有那么一点小厉害,竟然真的...
    非非凡阅读 1,692评论 18 69