zoukankan      html  css  js  c++  java
  • Springsession整合到Redis

    闲来无事,学习一下spring的session管理,作为一个初学者,我了解到了如下内容:

    1、为何要用Spring-session

    在传统单机web应用中,一般使用tomcat/jetty等web容器时,用户的session都是由容器管理。浏览器使用cookie中记录sessionId,容器根据sessionId判断用户是否存在会话session。这里的限制是,session存储在web容器中,被单台服务器容器管理。

    但是网站主键演变,分布式应用和集群是趋势(提高性能)。此时用户的请求可能被负载分发至不同的服务器,此时传统的web容器管理用户会话session的方式即行不通。除非集群或者分布式web应用能够共享session,尽管tomcat等支持这样做。但是这样存在以下两点问题:

    • 需要侵入web容器,提高问题的复杂
    • web容器之间共享session,集群机器之间势必要交互耦合

    有了spring-session之后,我们可以将session保存到Redis、Mongodb等nosql数据库。这样就避免了单点缓存的限制。

    Let's do it

    1.引入jar包

    <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>

    2、在application.properties中加入如下配置文件

    #设置session存储格式为redis
    spring.session.store-type=redis
    server.servlet.session.timeout=3600
    #session更新策略,有ON_SAVE、IMMEDIATE,前者是在调用#SessionRepository#save(org.springframework.session.Session)时,在response commit前刷新缓存,#后者是只要有任何更新就会刷新缓存
    spring.session.redis.flush-mode=on-save
    spring.session.redis.namespace=spring:session
    #redis配置
    spring.redis.database=0
    spring.redis.host=10.34.51.234
    spring.redis.password=123456
    spring.redis.pool.max-active=8
    spring.redis.pool.max-idle=8
    spring.redis.pool.max-wait=-1
    spring.redis.pool.min-idle=0
    spring.redis.port=6379

    3、配置redis服务器

    (略)

    4、编写SpringBoot程序

     5、运行登录一下吧

     

     可以看到查看到了session信息

    6、未完成序列化操作。不过我感觉也没必要完成序列化操作吧~

     结束!

      

    不忘初心,方得始终,以梦为马,不负韶华
  • 相关阅读:
    EMV/PBOC解析(三) TLV格式解析(C#)
    写自己的WPF样式
    EMV/PBOC 解析(二) 卡片数据读取
    FLEX 图片拷贝
    重学浏览器(2)-进程间的交互
    重学浏览器(1)-多进程多线程的浏览器
    实现财务自由-《富爸爸穷爸爸》读书语句摘抄
    mini-css-extract-plugin简介
    egg.js路由的优雅改造
    node中异步IO的理解
  • 原文地址:https://www.cnblogs.com/newz/p/11779783.html
Copyright © 2011-2022 走看看