(38)Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】
来源:互联网 发布:命运知乎 编辑:程序博客网 时间:2024/05/21 06:40
在使用spring boot做负载均衡的时候,多个app之间的session要保持一致,这样负载到不同的app时候,在一个app登录之后,而访问到另外一台服务器的时候,session丢失。
常规的解决方案都是使用:如apache使用mod_jk.conf,使用Memcached进行共享。
在开发spring boot app的时候可以借助 spring session 和redis或者ehcache,用外置的redis或者ehcache来存储session的状态,这里使用redis进行介绍,ehcache实现是一样的。
增加相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
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一致的问题了。
注意事项
(1)redis版本号需要是2.8以上否则会抛异常:ERR Unsupported CONFIG parameter: notify-keyspace-events;
(2)RedisSessionConfig需要放在App.java启动类可以扫描的位置;
1 0
- (38)Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】
- 38. Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】
- 38. Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】
- Spring Boot 分布式Session状态保存Redis
- 从零开始学Spring Boot
- (8). 使用JPA保存数据【从零开始学Spring Boot】
- (35)Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
- spring boot session redis
- 从零开始学spring-boot(1)-Hello spring boot!
- (3)Spring Boot热部署【从零开始学Spring Boot】
- (6)Spring Boot datasource - mysql【从零开始学Spring Boot】
- (3)Spring Boot热部署【从零开始学Spring Boot】
- (11)Spring Boot配置ContextPath【从零开始学Spring Boot】
- (20)Spring Boot Servlet【从零开始学Spring Boot】
- (21)Spring Boot过滤器、监听器【从零开始学Spring Boot】
- (27)Spring Boot Junit单元测试【从零开始学Spring Boot】
- 58. Spring Boot国际化(i18n)【从零开始学Spring Boot】
- (0)前言【从零开始学Spring Boot】
- (37)Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】
- mysql数据库优化
- 孙子兵法-谋攻篇
- 跳槽前,注意事项
- 使用指针法对数组进行冒泡排序、选择排序、插入排序法、二分查找法
- (38)Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】
- jquery post 同步异步总结
- Android开发知识巩固
- MVC(七、action 中使用await和async)
- 细谈Hibernate之悲观锁和乐观锁解决hibernate并发
- windows 下 TensorFlow(GPU 版)的安装
- Hashmap实现原理
- matlab 稀疏矩阵求 特征值
- 全排列-递归实现-C描述