博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(38)Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】
阅读量:6572 次
发布时间:2019-06-24

本文共 1674 字,大约阅读时间需要 5 分钟。

【本文章是否对你有用以及是否有好的建议,请留言】

在使用spring boot做负载均衡的时候,多个app之间的session要保持一致,这样负载到不同的app时候,在一个app登录之后,而访问到另外一台服务器的时候,session丢失。

       常规的解决方案都是使用:如apache使用mod_jk.conf,使用Memcached进行共享。

       在开发spring boot app的时候可以借助 spring session redis或者ehcache,用外置的redis或者ehcache来存储session的状态,这里使用redis进行介绍,ehcache实现是一样的。

增加相关依赖

      
org.springframework.boot
      
spring-boot-starter-redis
    
 
  
      
org.springframework.session
      
spring-session-data-redis
 

 

 

RedisSessionConfig.java

package com.wisely.base;
 
import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
 
@Configuration
@EnableRedisHttpSession
public class RedisSessionConfig {
 
}

 

如果需要添加失效时间可以使用以下的写法:

@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 60) //1分钟失效

相关配置修改

application.properties修改redis配置信息(请自行安装redis),请根据实际修改。如:

spring.redis.host=127.0.0.1

 

所有实体类实现Serializable接口

public class UserInfo implements Serializable

 

查看效果

这时候登录系统在不同的app之间跳转的时候,session都是一致了,redis上可以看到:

总结

使用这些代码之后 ,无论你使用nginx或者apache,都无须在关心多个app之间的session一致的问题了。

 

注意事项

1redis版本号需要是2.8以上否则会抛异常:ERR Unsupported CONFIG parameter: notify-keyspace-events

 

2RedisSessionConfig需要放在App.java启动类可以扫描的位置;

 

 

【Spring Boot 系列博客】

 

0)前言【从零开始学Spring Boot :

 

1spring boot起步之Hello World【从零开始学Spring Boot:

2Spring Boot返回json数据【从零开始学Spring Boot

(15)Spring Boot使用Druid和监控配置【从零开始学Spring Boot】

16Spring Boot使用Druid(编程注入)【从零开始学Spring Boot

17Spring Boot普通类调用bean【从零开始学Spring Boot】:

......

(35)Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】

 

 

更多查看博客:

 

转载于:https://www.cnblogs.com/hehehaha/p/6147104.html

你可能感兴趣的文章
淘宝静态页面
查看>>
Dockerfile Tomcat镜像制作
查看>>
自适应备忘录 demo
查看>>
Sharepoint 2010弹出对话框
查看>>
静态类(C#)
查看>>
linux vi
查看>>
K:栈和队列的比较
查看>>
PHP中获取当前页面的完整URL
查看>>
【模板】左偏树(可并堆)
查看>>
Django框架之路由层、视图层
查看>>
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
查看>>
正则查找文章内容关键字
查看>>
JS绘制拓扑图示例 (JTopo)
查看>>
世界最大电子展明年将移植到深圳
查看>>
iOS图片浏览器 - XLPhotoBrowser(类似微信多图片浏览效果)
查看>>
pymysql 单独获取表的栏位名称
查看>>
安卓srcCompat弄死我了
查看>>
实验四 递归下降语法分析程序设计
查看>>
虚幻4Matinee功能 基本概念及简单演示样例(Sequence编辑器)
查看>>
随机函数及随机公式推理过程
查看>>