You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Spring Boot通过Lettuce使用用户名密码连接Redis?

Spring Boot Lettuce 连接带用户名密码的Redis配置方案

本方案适配Redis 6.0及以上版本的ACL用户认证逻辑,根据你使用的Spring Boot版本选择对应配置方式即可。

Spring Boot 2.4及以上版本(推荐)

该版本起spring-boot-starter-data-redis默认提供spring.redis.username原生配置项,无需额外自定义代码,直接在配置文件中添加参数即可:

application.yml 示例

spring:
  redis:
    host: 你的Redis服务地址
    port: 6379
    username: 你的只读用户名
    password: 你的只读用户密码
    database: 0 # 按需指定数据库序号
    # lettuce连接池配置保持不变
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: -1ms

application.properties 示例

spring.redis.host=你的Redis服务地址
spring.redis.port=6379
spring.redis.username=你的只读用户名
spring.redis.password=你的只读用户密码
spring.redis.database=0
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0
spring.redis.lettuce.pool.max-wait=-1ms

配置完成后直接注入RedisTemplate或StringRedisTemplate即可使用,所有操作会继承只读用户的权限,写操作会被Redis服务端直接拒绝。

低于Spring Boot 2.4版本的配置方式

该版本没有原生的用户名配置项,可选择以下两种方式之一配置:

方式1:通过Redis URI直接配置

在配置文件中直接填写带认证信息的Redis URI即可:

spring:
  redis:
    # URI格式:redis://用户名:密码@服务地址:端口/数据库序号
    url: redis://readonly_user:your_pass@127.0.0.1:6379/0
    lettuce:
      pool:
        max-active: 8

注意:如果用户名或密码包含特殊字符,需要先做URL编码后再填入URI中。

方式2:自定义Lettuce连接工厂Bean

手动创建Redis配置类,显式指定用户名和密码:

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.LettuceConnectionFactory;

@Configuration
public class RedisCustomConfig {

    @Bean
    public LettuceConnectionFactory redisConnectionFactory() {
        RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
        config.setHostName("你的Redis服务地址");
        config.setPort(6379);
        config.setUsername("你的只读用户名");
        config.setPassword("你的只读用户密码");
        config.setDatabase(0);
        return new LettuceConnectionFactory(config);
    }
}

如果是Redis集群或哨兵模式,将RedisStandaloneConfiguration替换为对应的RedisClusterConfiguration、RedisSentinelConfiguration即可,两个配置类同样支持setUsername和setPassword方法。

配置验证

可以注入StringRedisTemplate尝试执行写操作opsForValue().set("testKey", "testValue"),如果返回权限错误提示,说明只读用户的认证配置已经生效。

内容的提问来源于stack exchange,提问作者Lalitkumar.annaldas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:45:05