Spring Session(Redis)

pom.xml

<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
    <version>1.3.1.RELEASE</version>
    <type>pom</type>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

...

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.8.6.RELEASE</version>
</dependency>

WebConfig.java

package com.alibaba.force.web.config;

import com.alibaba.force.api.shared.aop.ForceHandlerInterceptor;
import com.alibaba.force.common.enums.VisibilityLevelEnum;
import com.alibaba.force.common.util.PropertyUtils;
import com.alibaba.force.dal.model.AccessLevelEnum;

import com.lambdaworks.redis.resource.ClientResources;
import com.lambdaworks.redis.resource.DefaultClientResources;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.redis.connection.RedisSentinelConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.format.FormatterRegistry;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/** 
  * @author van.yzt
  * @date 2017/08/29
  */
  @Configuration
  @EnableWebMvc
  @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 108000)
  public class WebConfig extends WebMvcConfigurerAdapter {
  ...
   @Bean
   public LettuceConnectionFactory connectionFactory() {
       RedisSentinelConfiguration redisSentinelConfiguration = new RedisSentinelConfiguration(
           PropertyUtils.getRedisSentinelMasterName(),
           PropertyUtils.getRedisSentinelNodes());
       LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(redisSentinelConfiguration);
       ClientResources clientResources = new LettuceRedisClientResourceConfig(DefaultClientResources.builder());
       lettuceConnectionFactory.setClientResources(clientResources);
       lettuceConnectionFactory.setTimeout(5000);
       lettuceConnectionFactory.setPassword(PropertyUtils.getRedisConfigPassword());
       lettuceConnectionFactory.setShareNativeConnection(true);
       return lettuceConnectionFactory;
   }
  ...
  }

This configuration uses Redis Sentinel.

Configuration

redis.sentinel.master.name=force-master
redis.sentinel.nodes=10.101.104.13:26379,10.101.104.13:26380,10.101.104.13:26381
redis.config.password=YPr2Ymj^8$8a2*aD0F7z^L