Springboot2.x以上使用SpringSession进行redis共享session
2020-05-20 15:47
411 查看
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis-reactive</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
RedisConfiguration
import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; @Configuration public class RedisConfiguration { @Bean(name = "pool") protected JedisPool jedisPool(JedisPoolConfig jedisPoolConfig, @Value("${spring.redis.host}") String host, @Value("${spring.redis.port}") int port, @Value("${spring.redis.password}") String password, @Value("${spring.redis.database}") int database) { return new JedisPool(jedisPoolConfig, host, port, 15000, password, database); } @Bean public JedisPoolConfig jedisPoolConfig(@Value("${spring.redis.config.maxTotal}") int maxTotal, @Value("${spring.redis.config.maxIdle}") int maxIdle, @Value("${spring.redis.config.maxWaitMillis}") int maxWaitMillis) { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(maxTotal); config.setMaxIdle(maxIdle); config.setMaxWaitMillis(maxWaitMillis); config.setMaxWaitMillis(15000); config.setMinEvictableIdleTimeMillis(300000); config.setNumTestsPerEvictionRun(3); config.setTimeBetweenEvictionRunsMillis(60000); return config; } }
SessionConfig
import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.session.data.redis.config.ConfigureRedisAction; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; /** * @param * @Description:共享session * @Author:SimonHu * @Date: 2020/5/18 11:59 * @return */ @Configuration @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)//maxInactiveIntervalInSeconds设置session有效时间,单位是秒;默认是30分钟 public class SessionConfig { @Value("${spring.redis.host}") private String hostName; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.password}") private String password; @Value("${spring.redis.database}") private int database; @Bean public JedisConnectionFactory connectionFactory() { JedisConnectionFactory connectionFactory = new JedisConnectionFactory(); connectionFactory.setPort(port); connectionFactory.setHostName(hostName); connectionFactory.setPassword(password); connectionFactory.setDatabase(database); System.out.println("获取到的hostName是:" + hostName + ",port :" + port); return connectionFactory; } /** * 解决redis集群环境没有开启Keyspace notifications导致的 * <p> * Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer' defined in class path resource */ @Bean public static ConfigureRedisAction configureRedisAction() { return ConfigureRedisAction.NO_OP; } }
清除后需要重新登录。
登录成功,redis上已经缓存了session,重启idea不用登录。
相关文章推荐
- 使用springboot+redis实现session共享
- 使用springboot+redis实现session共享
- 使用springboot+redis实现session共享
- 使用springboot+redis实现session共享
- 使用springboot+redis实现session共享
- Spring Boot系列(七)Spring Boot使用Redis实现session共享
- spring boot中使用spring session进行session共享
- 使用redis实现session共享(基于Spring Boot)
- 使用springboot+redis实现session共享
- 使用springboot+redis实现session共享
- 使用springboot+redis实现session共享
- 使用springboot+redis实现session共享
- Spring Boot高级教程之使用Redis实现session共享
- Spring Boot系列(七)Spring Boot使用Redis实现session共享
- springboot利用springsession实现redis共享session,并且自定义sessionid
- Spring Boot系列(七)Spring Boot使用Redis实现session共享
- 使用Spring Session redis进行Session共享
- nginx+tomcat反向代理下使用tomcat-redis-session-manager进行session共享中值得注意的一个问题
- springboot 集成redis实现session共享
- 大型网站分布式架构(十)—— Springboot + SpringSession + Redis实现Tomcat集群Session共享