Redis开启auth_enabled后,GCP CloudRun中Spring Boot应用如何连接?
解决GCP Memorystore Redis认证后Spring Boot(CloudRun)连接问题
核心原因
GCP Memorystore Redis启用认证后,生成的auth_string并非Redis传统密码,而是用于SASL PLAIN认证机制的凭证,直接配置spring.data.redis.password无法触发正确的认证流程,导致连接失败。
解决方案
1. 配置SASL认证参数
在Spring Boot配置文件(application.properties或application.yml)中添加以下配置,替换占位符为你的Redis实例信息:
application.properties
spring.data.redis.host=你的Redis实例IP spring.data.redis.port=6379 spring.data.redis.sasl.enabled=true spring.data.redis.sasl.username=default spring.data.redis.sasl.password=<你的auth_string> spring.data.redis.ssl=false
application.yml
spring: data: redis: host: 你的Redis实例IP port: 6379 sasl: enabled: true username: default password: <你的auth_string> ssl: false
2. 自定义Lettuce连接工厂(若自动配置不生效)
如果上述配置仍无法生效,可手动创建LettuceConnectionFactory Bean,显式配置SASL认证:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import io.lettuce.core.SslOptions; import io.lettuce.core.auth.SaslAuthentication; @Configuration public class RedisConfig { @Bean public LettuceConnectionFactory lettuceConnectionFactory() { RedisStandaloneConfiguration redisConfig = new RedisStandaloneConfiguration(); redisConfig.setHostName("你的Redis实例IP"); redisConfig.setPort(6379); LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder() .sslOptions(SslOptions.builder().disable().build()) .saslAuthentication(SaslAuthentication.plain("default", "<你的auth_string>")) .build(); return new LettuceConnectionFactory(redisConfig, clientConfig); } }
3. 验证CloudRun网络配置
虽然无认证时可正常连接,仍需确认:
- Redis实例的VPC网络与CloudRun服务的VPC连接器已关联(若使用私有IP连接)
- CloudRun服务的服务账号拥有
roles/redis.client权限
关键说明
- GCP Memorystore Redis的SASL认证默认使用
default作为用户名,密码即为控制台生成的auth_string - 确保Lettuce版本≥6.x(你当前使用的6.2.3.RELEASE符合要求),旧版本对SASL支持可能不完善
内容的提问来源于stack exchange,提问作者Zi Sang
相关产品推荐
相关产品推荐

