简介
Spring框架提供了组件支持多应用共享Session。我采用了spring-session-data-redis组件,将session缓存到redis中。下面简要说明制做Demo的过程和遇到的问题
Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
配置application.yml
server:
session:
timeout: 1000
spring:
redis:
[ 忽略相关配置 ]
session:
store-type: redis
redis:
namespace: abc
第一坑:redis config
- redis异常
ERR unknow command ' CONFIG '
- 解决方法
参考https://docs.spring.io/spring-session/docs/current/reference/html5/#api-redisoperationssessionrepository-sessiondestroyedevent
redis服务配置config set notify-keyspace-events Egx
第二坑: @EnableRedisHttpSession和application.yml配置冲突
框架选择@EnableRedisHttpSession的属性,并忽略application.yml中的配置;不推荐使用@EnableRedisHttpSession