Redis 6.0中主从复制使用非默认用户鉴权需要注意哪些配置陷阱?

秋静吖_5128

秋静吖_5128

2026-10-26

860人浏览

原创

Redis 6.0+主从复制必须使用专用ACL用户,禁用default用户;从节点需配置masteruser和masterauth,权限须显式授予+replconf、+psync、+sync、+ping且键空间为~*,否则握手失败。

redis 6.0中主从复制使用非默认用户鉴权需要注意哪些配置陷阱?

主节点必须显式创建 ACL 用户,不能只靠 requirepass

Redis 6.0+ 启用 ACL 后,requirepass 对主从复制已失效——它只作用于 default 用户,而从节点连接时不会自动以 default 身份登录。如果你只配了 requirepass,但从节点又没设 masteruser,它会尝试用空用户名 + masterauth 密码去认证 default,一旦 default 被禁用(比如执行过 ACL SETUSER default off),就会卡在 NOAUTH Authentication required。

正确做法是:在主节点上用 ACL SETUSER 创建专用用户,例如:

ACL SETUSER repl_user on >secret123 ~* +replconf +psync +sync +ping -@write

然后执行 ACL SAVE 持久化,否则重启后配置丢失。

从节点的 masteruser 和 masterauth 必须匹配 ACL 用户名和密码

masterauth 不再是“单密码”,而是“用户名:密码”格式(仅当使用 ACL 用户时)。很多团队沿用旧习惯,在从节点配置里写:

masterauth secret123

这会导致从节点仍试图以 default 用户身份认证,而非你创建的 repl_user。必须改成:

masterauth "repl_user:secret123"

注意双引号包裹,且中间是英文冒号。该配置需写入从节点 redis.conf 并重启生效;运行时用 CONFIG SET masterauth 只能临时生效,重启即丢。

  • 如果主节点 default 用户被关闭(off),但从节点仍用纯密码方式,复制握手必然失败
  • masteruser 值必须与主节点上 ACL SETUSER 定义的用户名完全一致(大小写敏感)
  • 密码中若含特殊字符(如 $、@),建议用 redis-cli ACL GENPASS 生成,避免手动转义出错

ACL 权限缺一不可:+replconf +psync +sync +ping 是硬性要求

只给 +@all 或 +@read 不够。因为 replconf 和 psync 属于底层协议命令,不在任何标准命令分类(@read/@admin)中,ACL 不自动包含它们。漏掉任一个,从节点日志会反复打印:

redis-tools
redis-tools

按类别查找Redis命令、检测服务器连接、监控键数量和内存占用,支持离线速查表。

下载
Failed to AUTH with master: -NOAUTH Authentication required

实际是认证成功了,但在执行 REPLCONF listening-port 或 PSYNC 时被拒绝。最小必要集合就是这四个:

  • +replconf:用于从节点上报端口、缓冲区状态等元信息
  • +psync 和 +sync:触发全量或增量同步的核心命令
  • +ping:心跳探测,主节点用它判断从节点存活
  • 若主节点启用了 replica-announce-ip 或 replica-announce-port,还需加 +client(用于 CLIENT SETINFO)

键空间权限必须放开为 ~*,且禁止写权限

从节点同步时需要读取所有 key,包括内部 key(如 __redis__:sync 等),所以 ACL 中的键模式必须是 ~*,不能是 ~app:* 这类受限前缀。否则会出现同步卡住、部分 key 漏同步、甚至握手直接中断。

同时必须显式禁用写权限:-@write。这不是可选项——即使从节点本身配置了 replica-read-only yes,ACL 层若保留 +@write,仍可能在某些异常路径下触发写操作(如模块加载、Lua 脚本误用),破坏数据一致性。

典型错误配置:

ACL SETUSER repl_user on >pwd ~app:* +replconf +psync +sync +ping

这里 ~app:* 键空间太窄,-@write 缺失,都属于高危配置。

最易被忽略的一点:ACL 规则顺序不重要,但 ~* 和 -@write 必须显式写出。很多人以为 +@all 包含全部键空间和全部命令,其实它只代表命令集,键空间默认为空,不加 ~* 就等于没授权任何 key。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4649

19

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.14

4215

11

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.02

7912

6

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

643

6

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

776

6

mysql和redis怎么保证双写一致性
mysql和redis怎么保证双写一致性

确保 mysql 和 redis 双写一致性的技术包括:1、事务性更新:同时更新 mysql 和 redis,保证一致性;2、主从复制:mysql 主服务器更改同步到 redis 从服务器;3、基于事件的更新:mysql 记录更改并发送到 redis等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

7962

6

redis缓存一般存些什么数据
redis缓存一般存些什么数据

redis缓存中存储的数据类型包括:字符串、哈希、列表、集合、有序集合、位图、地理空间数据和hyperloglog。这些数据类型适用于存储各种数据,从简单信息到复杂对象和地理位置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

1180

6

redis的8种数据类型有哪些
redis的8种数据类型有哪些

redis 提供 8 种数据类型:字符串(文本、数字、二进制)、哈希(键值对)、列表(有序集合)、集合(无序唯一元素)、有序集合(按分数排序)、地理空间(地理位置)、hyperloglog(估计大数据基数)和位图(位序列存储)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

1196

6

redis主要作用有哪些
redis主要作用有哪些

redis 的主要作用包括:1. 缓存数据,提高访问速度;2. 充当消息队列,实现消息传递;3. 存储各种数据类型,如字符串、散列和集合;4. 管理会话信息,确保可靠性和可用性;5. 限制请求速率,防止服务器超载等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

6918

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习