温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

redis存session的方式

发布时间:2020-05-14 15:22:38 来源:亿速云 阅读:162 作者:Leah 栏目:关系型数据库

本篇文章展示了redis存session的方式,代码简明扼要容易理解,如果在日常工作遇到这个疑问。希望大家通过这篇文章,找到解决疑问的办法。

Redis存储session的需要考虑问题:

session数据如何在Redis中存储?session属性变更何时触发存储?

实现:

考虑到session中数据类似map的结构,采用redis中hash存储session数据比较合适,如果使用单个value存储session数据,不加锁的情况下,就会存在session覆盖的问题,因此使用hash存储session,每次只保存本次变更session属性的数据,避免了锁处理,性能更好。

如果每改一个session的属性就触发存储,在变更较多session属性时会触发多次redis写操作,对性能也会有影响,我们是在每次请求处理完后,做一次session的写入,并且之写入变更过的属性。

如果本次没有做session的更改, 是不会做redis写入的,仅当没有变更的session超过一个时间阀值(不变更session刷新过期时间的阀值),就会触发session保存,以便session能够延长有效期。

两种实现方式:

session集中存储(redis,memcached,hbase等)。

不同服务器上session数据进行复制,两种方式的优缺点,大家应该一目了然。

基于session集中存储的实现方案:

新增Filter,拦截请求,包装HttpServletRequest

改写getSession方法,从session存储中获取session数据,返回自定义的HttpSession实现

在生成新Session后,写入sessionid到cookie中

看完上述内容,你们掌握redis存session的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI