springboot2实现redis session存储
第一步:
引入依赖
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
第二步:application.yml配置
server:
port: 8888
servlet:
context-path: /
tomcat:
uri-encoding: utf-8
spring:
session:
store-type: redis #指定redis实现spring session
timeout: PT1H # Session 过期时间, PT开头 ‘D’ – 天 ‘H’ – 小时 ‘M’ – 分钟 ‘S’ – 秒
redis:
flush-mode: on_save # Sessions 刷新模式 on_save http response为committed才提交 immediate 立即提交
namespace: java1234 # session 存储命名空间
redis:
host: 172.17.0.3
port: 6379
password:
lettuce:
pool:
max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 8 # 连接池中的最大空闲连接
min-idle: 0 # 连接池中的最小空闲连接
shutdown-timeout: 100 # 连接超时时间(毫秒)
第三步:启动类加
@EnableRedisHttpSession
第四步:核心代码编写
@PostMapping(value = "/login")
public ModelAndView login (HttpSession session, User user){
ModelAndView mav=new ModelAndView();
if("java1234".equals(user.getUsername())&&"123456".equals(user.getPassword())){
session.setAttribute("currentUser",user);
mav.setViewName("main");
}else{
mav.addObject("errorInfo","用户名或者密码错误!");
mav.setViewName("login");
}
return mav;
}
我们直接通过HttpSession设置 即可把session存到redis中去;