Redis(Linux服务版)新建用户自动删除,求永久持久化方案
解决Redis新建用户持久化问题
Redis新建用户丢失的核心原因是:默认情况下,通过ACL SETUSER创建的用户仅存在于内存中,Redis重启(包括意外崩溃后重启)会导致这些配置丢失。以下是几种可靠的持久化方案:
方案一:直接写入Redis配置文件
找到Redis的主配置文件(通常路径为/etc/redis/redis.conf),在文件中直接定义用户及对应的RBAC权限,示例:
# 管理员用户:拥有所有权限 user admin on >MyStrongAdminPass ~* +@all # 应用专用用户:仅能操作app前缀的键,拥有读写权限 user app_service on >AppSecurePass ~app:* +@read +@write
修改完成后,重启Redis服务使配置生效:
systemctl restart redis
后续新增或修改用户时,记得同步更新配置文件,避免重启后丢失。
方案二:用CONFIG REWRITE命令同步运行时配置到文件
当你通过ACL SETUSER命令创建/修改用户后,执行以下命令将当前运行时的ACL规则(包括用户配置)写入到Redis配置文件:
CONFIG REWRITE
注意:需确保Redis进程对配置文件具备写入权限,否则该命令会执行失败。
方案三:启用AOF持久化
如果Redis开启了AOF(Append Only File)持久化,所有ACL SETUSER操作会被记录到AOF文件中,Redis重启时会重放AOF文件内的命令,自动恢复用户配置。
- 检查AOF是否已开启:
返回CONFIG GET appendonly"no"则表示未开启。 - 开启AOF:
编辑配置文件,修改appendonly yes,然后重启Redis;或者临时开启后同步到配置文件:CONFIG SET appendonly yes CONFIG REWRITE
验证持久化效果
重启Redis服务后,执行ACL LIST命令,查看用户列表是否完整,确认配置已持久化。
内容的提问来源于stack exchange,提问作者Lalitkumar.annaldas
相关产品推荐
相关产品推荐

