Skip to content

Commit 6e03f1e

Browse files
Dounxlyingbug
authored andcommitted
feat(redis): add REDIS_USERNAME support for Redis ACL
1 parent c2cdc16 commit 6e03f1e

File tree

8 files changed

+18
-2
lines changed

8 files changed

+18
-2
lines changed

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ DB_PASSWORD=postgres123!@#
5252
DB_NAME=WeKnora
5353

5454
# 如果使用 redis 作为流处理后端,需要配置以下参数
55+
# Redis用户名,Redis 6.0+ ACL 功能支持(可选)
56+
# REDIS_USERNAME=
57+
5558
# Redis密码,如果没有设置密码,可以留空
5659
REDIS_PASSWORD=redis123!@#
5760

helm/templates/app.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ spec:
7676
# Redis configuration
7777
- name: REDIS_ADDR
7878
value: "redis:6379"
79+
- name: REDIS_USERNAME
80+
valueFrom:
81+
secretKeyRef:
82+
name: {{ include "weknora.secretName" . }}
83+
key: REDIS_USERNAME
84+
optional: true
7985
- name: REDIS_PASSWORD
8086
valueFrom:
8187
secretKeyRef:

helm/templates/secrets.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ stringData:
2525
DB_PASSWORD: {{ required "secrets.dbPassword is required" .Values.secrets.dbPassword | quote }}
2626
DB_NAME: {{ .Values.secrets.dbName | quote }}
2727
# Redis credentials
28+
REDIS_USERNAME: {{ .Values.secrets.redisUsername | default "" | quote }}
2829
REDIS_PASSWORD: {{ required "secrets.redisPassword is required" .Values.secrets.redisPassword | quote }}
2930
# Application secrets
3031
JWT_SECRET: {{ required "secrets.jwtSecret is required" .Values.secrets.jwtSecret | quote }}

helm/values.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,8 @@ secrets:
386386
dbPassword: ""
387387
# -- Database name
388388
dbName: weknora
389+
# -- Redis username (OPTIONAL: for Redis 6.0+ ACL)
390+
redisUsername: ""
389391
# -- Redis password (REQUIRED: change in production)
390392
redisPassword: ""
391393
# -- JWT signing secret (REQUIRED: change in production)
@@ -394,7 +396,7 @@ secrets:
394396
tenantAesKey: ""
395397

396398
# -- Use existing secret instead of creating one
397-
# The secret must contain keys: DB_USER, DB_PASSWORD, DB_NAME, REDIS_PASSWORD, JWT_SECRET, TENANT_AES_KEY
399+
# The secret must contain keys: DB_USER, DB_PASSWORD, DB_NAME, REDIS_USERNAME, REDIS_PASSWORD, JWT_SECRET, TENANT_AES_KEY
398400
existingSecret: ""
399401

400402
# -----------------------------------------------------------------------------

internal/config/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ type StreamManagerConfig struct {
149149
// RedisConfig Redis配置
150150
type RedisConfig struct {
151151
Address string `yaml:"address" json:"address"` // Redis地址
152+
Username string `yaml:"username" json:"username"` // Redis用户名
152153
Password string `yaml:"password" json:"password"` // Redis密码
153154
DB int `yaml:"db" json:"db"` // Redis数据库
154155
Prefix string `yaml:"prefix" json:"prefix"` // 键前缀

internal/container/container.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ func initRedisClient() (*redis.Client, error) {
238238

239239
client := redis.NewClient(&redis.Options{
240240
Addr: os.Getenv("REDIS_ADDR"),
241+
Username: os.Getenv("REDIS_USERNAME"),
241242
Password: os.Getenv("REDIS_PASSWORD"),
242243
DB: db,
243244
})

internal/stream/factory.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ func NewStreamManager() (interfaces.StreamManager, error) {
2525
ttl := time.Hour // 默认1小时
2626
return NewRedisStreamManager(
2727
os.Getenv("REDIS_ADDR"),
28+
os.Getenv("REDIS_USERNAME"),
2829
os.Getenv("REDIS_PASSWORD"),
2930
db,
3031
os.Getenv("REDIS_PREFIX"),

internal/stream/redis_manager.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ type RedisStreamManager struct {
1818
}
1919

2020
// NewRedisStreamManager creates a new Redis-based stream manager
21-
func NewRedisStreamManager(redisAddr, redisPassword string,
21+
func NewRedisStreamManager(redisAddr, redisUsername, redisPassword string,
2222
redisDB int, prefix string, ttl time.Duration,
2323
) (*RedisStreamManager, error) {
2424
client := redis.NewClient(&redis.Options{
2525
Addr: redisAddr,
26+
Username: redisUsername,
2627
Password: redisPassword,
2728
DB: redisDB,
2829
})

0 commit comments

Comments
 (0)