SpringBoot整合redis/解决session共享问题

SpringBoot整合redis

1、导入依赖, redis相关依赖

<!-- 配置使用redis启动器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2、 在SpringBoot的配置文件中配置redis相关信息:(开启一个redis,ip端口一致

spring:
  #redis相关的信息
  redis: 
    host: 127.0.0.1
    port: 6379

3、给entity实体类实现Serializable接口

操作redis: SpringBoot创建RedisTemplate的bean, 4、在service 使用RedisTemplate操作redis

测试:

@Service
public class EmployeeServiceImpl implements IEmployeeService {
    @Autowired
    private EmployeeMapper empMapper;
    
    @Autowired
    private RedisTemplate redisTemplate;

    @Override
    public Employee queryOne(int empno) throws Exception {
        String key = "emp_"+empno;
        if(redisTemplate.hasKey(key)) {
            return (Employee)redisTemplate.opsForValue().get(key);
        }
        Employee emp = empMapper.queryById(empno);
        redisTemplate.opsForValue().set(key, emp, 7, TimeUnit.DAYS);
        return emp;
    }

SpringBoot 解决session共享问题

Tomcat集群 --> nginx 

1、添加Session共享的依赖

<!-- 配置使用redis启动器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>  
<!-- session共享的依赖 -->
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>

测试:

1、首先关闭热部署

2、启动一个tomcat

#端口
server:
  port: 8888

更改端口在启动一个tomcat

#端口
server:
  port: 9999

编写一个测试TestSessionController.java,返回json页面数据

//@Controller
//@ResponseBody    //表示这个Controller类所有的方法响应的数据
@RestController  //@Controller 与@ResponseBody 组合注解
//如果json, 响应给前端的数据乱码,  添加这个: produces = "application/json;charset=utf-8"
@RequestMapping(value="session",produces = "application/json;charset=utf-8")
public class TestSessionController {
    @Value("${server.port}")
    private Integer port;
@GetMapping(value = "set" ) public String set(HttpSession session) throws Exception { session.setAttribute("name", "张三"); return "端口号为:"+port+",Tomcat服务器处理了您的请求"; } @GetMapping(value = "get" ) public String get(HttpSession session) throws Exception { return "端口号为:"+port+",Tomcat服务器处理了您的请求,获取的到数据:"+session.getAttribute("name"); }

开启nginx 。

注意:  使用redis,  先关闭Tomcat, 再关闭redis服务器

原文地址:https://www.cnblogs.com/64Byte/p/13262818.html