Spring Boot基礎教程25-使用Spring Session實現集羣-redis

session集羣的解決方案

1.擴展指定server

利用Servlet容器提供的插件功能,自定義HttpSession的創建和管理策略,並通過配置的方式替換掉默認的策略。缺點:耦合Tomcat/Jetty等Servlet容器,不能隨意更換容器。

 

2.利用Filter

利用HttpServletRequestWrapper,實現自己的 getSession()方法,接管創建和管理Session數據的工作。spring-session就是通過這樣的思路實現的。

 

Spring Boot中spring session支持方式

JDBC、MongoDB、Redis、Hazelcast、HashMap

 

  • 添加依賴

<!-- spring session -->

<dependency>

<groupId>org.springframework.session</groupId>

<artifactId>spring-session</artifactId>

</dependency>

<!-- redis -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-redis</artifactId>

</dependency>

 

  • 配置

# spring session使用存儲類型

#spring.session.store-type=redis

# spring session刷新模式:默認on-save

#spring.session.redis.flush-mode=on-save

#spring.session.redis.namespace=

# session超時時間,單位秒

#server.session.timeout=30

 

#redis

#spring.redis.host=localhost

#spring.redis.port=6379

#spring.redis.password=123456

#spring.redis.database=0

#spring.redis.pool.max-active=8

#spring.redis.pool.max-idle=8

#spring.redis.pool.max-wait=-1

#spring.redis.pool.min-idle=0

#spring.redis.timeout=0

 

  • 測試

@RequestMapping(value = "/index")

public String index(ModelMap map, HttpSession httpSession) {

map.put("title", "第一個應用:sessionID=" + httpSession.getId());

System.out.println("sessionID=" + httpSession.getId());

return "index";

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章