Redis实现session管理

管理机制

redis的session管理是利用spring提供的session管理解决方案,将一个应用session交给Redis存储,整个应用中所有session的请求都会去redis中获取对应的session

开发Session管理

引入依赖

<dependency>
	<groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>

开发Session管理配置类

@Configuration
@EnableRedisHttpSession
public class RedisSessionManager {
	
}

打包测试

单点测试

application.properties

spring.application.name=redis_test
server.port=8989

#单节点
spring.redis.host=39.99.236.216
spring.redis.port=7000
spring.redis.database=0

Controller

@Controller
@RequestMapping("test")
public class TestController {
    @SneakyThrows
    @RequestMapping("test")
    public void test(HttpServletRequest request, HttpServletResponse response){
        List<String> list = (List<String>) request.getSession().getAttribute("list");
        if (list == null){
            list = new ArrayList<>();
        }
        list.add("xxx");
        //使用redis的session管理  注意:当session中数据发生变化时必须将session中变化的数据同步到redis中
        request.getSession().setAttribute("list",list);     //同步redis中的session数据
        response.getWriter().println("size" + list.size());
        response.getWriter().println("sessionId" + request.getSession().getId());
    }
}

集群测试

# 1 配置
   <description>Demo project for Spring Boot</description>
	<!--step 1-->
   <packaging>war</packaging>
   ......
   <!--step 2 排除内嵌tomcat-->
   <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
   </dependency>
   
# 2 修改入口类
    @SpringBootApplication
    @MapperScan("com.longda.dao")
    public class RedisTestApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
    SpringApplication.run(RedisTestApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(RedisTestApplication.class);
    }
    }
 
 # 3 打包放到linux上
posted @ 2020-09-10 17:44  longda666  阅读(615)  评论(0)    收藏  举报