Java Springsession和redis混合会话
我们使用redis作为会话存储配置了springsessions。随着负载的增加,它最终导致用户碰巧取回随机会话数据 不幸的是,我们不能再次复制它,并且它不能在测试环境中复制Java Springsession和redis混合会话,java,session,redis,spring-session,Java,Session,Redis,Spring Session,我们使用redis作为会话存储配置了springsessions。随着负载的增加,它最终导致用户碰巧取回随机会话数据 不幸的是,我们不能再次复制它,并且它不能在测试环境中复制 有没有人有过类似的经验,也许可以指出一个方向看看什么?我在我的项目中使用了使用redis session store的spring session,如下所示,它工作正常,我与大家分享,希望能有所帮助 二手弹簧启动机版本:1.4.3 <dependency> <groupId>or
有没有人有过类似的经验,也许可以指出一个方向看看什么?我在我的项目中使用了使用redis session store的spring session,如下所示,它工作正常,我与大家分享,希望能有所帮助 二手弹簧启动机版本:1.4.3
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>biz.paluch.redis</groupId>
<artifactId>lettuce</artifactId>
<version>3.5.0.Final</version>
</dependency>
}我们在应用程序中遇到了类似的问题,您找到原因/解决方案了吗?
package az.com.cybernet.aas.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.lettuce.
LettuceConnectionFactory;
import org.springframework.session.data.redis.config.annotation.web.http.
EnableRedisHt
tpSession;
import org.springframework.session.web.http.CookieHttpSessionStrategy;
import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.DefaultCookieSerializer;
import org.springframework.session.web.http.HttpSessionStrategy;
@EnableRedisHttpSession
public class RedisConfig {
@Value("${spring.redis.host}")
private String hostname;
@Value("${spring.redis.port}")
private String port;
// @Value("${spring.redis.password}")
// private String password;
@Bean
public LettuceConnectionFactory connectionFactory() {
LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory();
connectionFactory.setHostName(hostname);
// connectionFactory.setPassword(password);
connectionFactory.setDatabase(2);
connectionFactory.setPort(Integer.parseInt(port));
return connectionFactory;
}
@Bean
public CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("JSESSIONID");
serializer.setCookiePath("/");
serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");
return serializer;
}
@Bean
public HttpSessionStrategy strategy() {
CookieHttpSessionStrategy cookieHttpSessionStrategy = new CookieHttpSessionStrategy();
cookieHttpSessionStrategy.setCookieSerializer(cookieSerializer());
return cookieHttpSessionStrategy;
}