Spring session redis ERR unknown command 'CONFIG'
时间: 2024-01-23 16:03:56 浏览: 101
这个问题通常是因为 Redis 版本太低导致的。在 Redis 2.6.x 版本中,CONFIG 命令是不支持的,而 Spring Session Redis 依赖于这个命令来检查 Redis 的配置参数。解决这个问题的方法是升级 Redis 版本到 2.8.x 或更高版本。如果你不能升级 Redis 版本,可以考虑使用 Spring Session Redis 的旧版本,这些版本不依赖于 CONFIG 命令。你可以在 Spring Session Redis 的 GitHub 页面中找到旧版本的文档和下载链接。
相关问题
springsession redis 怎么实现
Spring Session Redis可以通过以下步骤实现:
1. 添加依赖
在pom.xml文件中添加Spring Session Redis的依赖:
```xml
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
```
2. 配置Redis连接
在application.properties文件中添加Redis连接配置:
```
spring.redis.host=localhost
spring.redis.port=6379
```
3. 配置Spring Session
在配置类中添加@EnableRedisHttpSession注解,并设置session过期时间:
```java
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800) // session过期时间为30分钟
public class HttpSessionConfig {
}
```
4. 测试Spring Session Redis
在Controller中添加以下代码:
```java
@GetMapping("/test")
public String test(HttpSession session) {
// 设置session属性
session.setAttribute("name", "Spring Session Redis");
// 获取session属性
String name = (String) session.getAttribute("name");
System.out.println("Session Name: " + name);
return "test";
}
```
启动应用程序,并在浏览器中访问`http://localhost:8080/test`。控制台输出的日志将显示session的名称。
以上就是Spring Session Redis的实现步骤。
spring session redis 排除某些路径
在使用Spring Session Redis时,您可以通过配置`spring.session.redis.filter-dispatcher-types`属性来排除某些路径。该属性指定了一个逗号分隔的字符串列表,其中包含要排除的请求类型。
默认情况下,Spring Session Redis会拦截所有请求并将它们重定向到一个新的URL。如果您想要排除某些路径,您可以在`application.properties`或`application.yml`文件中添加以下配置:
```
spring.session.redis.filter-dispatcher-types=REQUEST,ASYNC
```
在此示例中,我们排除了所有普通请求和异步请求。您可以根据需要修改该属性,以排除其他类型的请求。注意,这些请求将不会使用Spring Session Redis进行会话管理。
如果您使用的是Java配置方式,可以使用以下代码:
```
@Configuration
public class SessionConfig {
@Bean
public RedisOperationsSessionRepository sessionRepository(RedisConnectionFactory redisConnectionFactory) {
RedisOperationsSessionRepository sessionRepository = new RedisOperationsSessionRepository(redisConnectionFactory);
sessionRepository.setFilterDispatcherTypes(EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC));
return sessionRepository;
}
}
```
在这种情况下,我们排除了所有普通请求和异步请求。同样,您可以根据需要修改此配置。
请注意,如果您排除了一些请求类型,这些请求将不会使用Spring Session Redis进行会话管理。因此,您需要确保这些请求不会影响应用程序的会话管理。