shiro redis session共享总结

彭宏阔
2023-12-01

原文链接

目前了解的做法有三种:

第一种,将shiro的cache存储在redis中。重写cacheManage,cache 变成 RedisCache。

              参考网址:https://blog.csdn.net/lhacker/article/details/19334305

第二种,将shiro的session存储在redis中。重写 sessionManager,sessionDao 变成 RedisSessionDao 

             参考网址:https://github.com/hafizzhang/shiro-session-cluster

第三种,将shiro的session存储在redis中,但是读取的时候从cache中读,若本地cache没有则从redis中读取。更新或者删除的              时候 向redis发送消息,通过redis发布订阅,清空cache。

             参考网址:https://github.com/xiaolongyuan/shiro-redis-session 代码

在使用shiro redis session的 过程中,发现shiro读取和更新太频繁。

1.一个请求中读取session次数过多,可以在这个请求中缓存session,或者第三种做法。

解决方案 

            缓存session: https://www.cnblogs.com/xj-blog/p/8289429.html

2.更新频繁是由于更新过期时间造成的,可以由此判断是否更新(也就是上文中的第三种方法)。重写session 和 sessionFactory。

            参考 https://github.com/xiaolongyuan/shiro-redis-session 代码

由于读取和更新太频繁都解决了,所以不推荐第三种,建议第二种。

 类似资料: