• 技术文章 >数据库 >Redis

    redis怎么存session

    (*-*)浩(*-*)浩2019-11-21 10:12:37原创1582

    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的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:redis
    上一篇:redis怎么持久化数据 下一篇:java web中一般用redis来做什么

    相关文章推荐

    • redis什么时候持久化• redis的key是什么类型• redis怎么做缓存• redis怎么实现数据同步

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网