구성 단계 요약
spring-session redis 구성 수명을 시작하는 간단한 4가지 단계
1. pom.xml에 jar 종속성 추가
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> .... <properties> <version.spring-session>1.2.2.RELEASE</version.spring-session> <!--不兼容 1.7.4.RELEASE --> <version.spring-data-redis>1.7.1.RELEASE</version.spring-data-redis> </properties> <dependencies> .... <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session</artifactId> <version>${version.spring-session}</version> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version>${version.spring-session}</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>${version.spring-data-redis}</version> </dependency> .... </dependencies> </project>
2 .web.xml springSessionRepositoryFilter 구성 다운로드
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> ... <!-- spring-session config --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:spring-session-cluster.xml </param-value> </context-param> <!-- 这个filter 要放在第一个 --> <filter> <filter-name>springSessionRepositoryFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSessionRepositoryFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping> ... </web-app>
3. spring-session-cluster.xml 다운로드
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd "> <context:annotation-config /> <util:properties id="redis" location="classpath:redis-cluster.properties"></util:properties> <!-- RedisHttpSessionConfiguration --> <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration" /> <!--JedisConnectionFactory --> <bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <constructor-arg index="0"> <!-- since spring-data-redis 1.7 --> <bean class="org.springframework.data.redis.connection.RedisClusterConfiguration"> <constructor-arg index="0"> <set> <value>#{redis['redis.redisClusterConfiguration.clusters']}</value> </set> </constructor-arg> <!-- 用于 redis.clients.jedis.JedisCluster.JedisCluster(Set<HostAndPort>, int, int, GenericObjectPoolConfig) 第三个参数 maxRedirections 默认值是5 一般当此值设置过大时,容易报:Too many Cluster redirections --> <property name="maxRedirects" value="#{redis['redis.redisClusterConfiguration.maxRedirects']}" /> </bean> </constructor-arg> <constructor-arg index="1"> <bean class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="#{redis['redis.jedisPoolConfig.MaxIdle']}" /> <property name="testOnBorrow" value="#{redis['redis.jedisPoolConfig.testOnBorrow']}" /> <property name="testOnReturn" value="#{redis['redis.jedisPoolConfig.testOnReturn']}" /> <!-- 新版jedis 不支持这个参数了 --> <!-- <property name="maxWait" value="#{redis['redis.jedisPoolConfig.MaxWait']}" /> --> <!-- <property name="maxActive" value="#{redis['redis.jedisPoolConfig.MaxActive']}" /> --> </bean> </constructor-arg> </bean> </beans>
4. redis-cluster.properties
#############for org.springframework.data.redis.connection.RedisClusterConfiguration################### #只需要配置 master #理论上只需要配置一个节点即可,配置多个是为了防止单个节点挂掉, redis.redisClusterConfiguration.clusters=10.88.21.31:10000,10.88.22.25:10000,10.88.21.31:10001 #用于 redis.clients.jedis.JedisCluster.JedisCluster(Set<HostAndPort>, int, int, GenericObjectPoolConfig) 第三个参数 maxRedirections #默认值是5 #一般当此值设置过大时,容易报:Too many Cluster redirections redis.redisClusterConfiguration.maxRedirects=3 ###########for redis.clients.jedis.JedisPoolConfig############################## redis.jedisPoolConfig.MaxIdle=60000 redis.jedisPoolConfig.testOnBorrow=true redis.jedisPoolConfig.testOnReturn=true #新版jedis 不支持这个参数了 #redis.jedisPoolConfig.MaxActive=50 #redis.jedisPoolConfig.MaxWait=5000