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")); 

}

}

你可能感兴趣的:(Redis取出Spring-session共享的session)