总结配置步骤
简单四步,开始java spring-session redis 配置人生
1. pom.xml 添加 jar依赖
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://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="https://java.sun.com/xml/ns/javaee" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://java.sun.com/xml/ns/javaee https://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="https://www.springframework.org/schema/beans" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:context="https://www.springframework.org/schema/context"
xmlns:p="https://www.springframework.org/schema/p" xmlns:util="https://www.springframework.org/schema/util"
xsi:schemaLocation="https://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd
https://www.springframework.org/schema/util https://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
简单四步,开始 spring-session redis 配置人生
--to be continued
© 牛耳教育|长沙java培训|长沙java培训学校|长沙软件培 | Powered by LOFTER