java spring 连接redis ,出现 "ERR Client sent AUTH, but no password is set " 错误
时间: 2023-07-12 18:25:04 浏览: 72
Spring连接Redis实现缓存完整demo
这个错误是由于 Redis 设置了密码验证,但是你的 Java Spring 应用程序没有正确地配置 Redis 密码所导致的。解决这个问题,你需要在 Spring 中配置 Redis 密码。
以下是配置 Redis 密码的步骤:
1.在 `application.properties` 或 `application.yml` 中添加 Redis 的连接信息,包括主机、端口和密码等信息。例如:
```
spring.redis.host=your_redis_host
spring.redis.port=your_redis_port
spring.redis.password=your_redis_password
```
2.在 Spring 中创建 Redis 连接工厂:
```java
@Configuration
public class RedisConfig {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName("your_redis_host");
config.setPort(your_redis_port);
config.setPassword(RedisPassword.of("your_redis_password"));
JedisClientConfiguration jedisClientConfiguration = JedisClientConfiguration.builder().usePooling().build();
JedisConnectionFactory factory = new JedisConnectionFactory(config, jedisClientConfiguration);
return factory;
}
}
```
3.在 Spring 中创建 RedisTemplate:
```java
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
```
这些步骤应该可以解决你的问题。如果你仍然遇到麻烦,可以提供更多信息,我可以更好地帮助你。
阅读全文