redis怎么存session


本文摘自PHP中文网,作者(*-*)浩,侵删。

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

session数据如何在Redis中存储?session属性变更何时触发存储? (推荐学习:Redis视频教程)

实现:

考虑到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的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Redis之django-Redis使用

Redis是用什么语言写的

Redis有多少种锁

Redis是关系型数据库吗

es和Redis区别

使用Redis完成排行榜系统

Redis英语怎么读

Redis集群怎么同步

Redis异常原因及解决方案

Redis默认端口号是多少

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...