*Redis AUTH 命令

使用密码验证 Redis 连接身份。


*语法

AUTH [username] password

Redis 6.0+ 支持 ACL 用户名,旧版本只支持密码。


*参数说明

参数 类型 必填 说明
username String ACL 用户名(Redis 6.0+)
password String 密码

*返回值

条件 返回值
验证成功 OK
验证失败 错误 ERR invalid passwordWRONGPASS

*时间复杂度

O(1)

*

*示例

# 无用户名(Redis < 6.0 或未启用 ACL)
> AUTH mypassword
OK

# ACL 用户名(Redis 6.0+)
> AUTH default mypassword
OK

# 错误密码
> AUTH wrongpass
(error) ERR invalid password

*常见错误

  1. 未设置密码但发送 AUTH:返回 ERR Client sent AUTH, but no password is set
  2. ACL 用户名错误:Redis 6.0+ 返回 WRONGPASS invalid username-password pair

*最佳实践

  1. requirepass 或 ACL:生产环境必须设置密码,Redis 6.0+ 推荐 ACL 细粒度权限控制。
  2. 连接池配置:密码在连接池初始化时配置,避免每次操作发送 AUTH。
  3. TLS 加密:密码明文传输,内网或配合 TLS/SSL 防止嗅探。

*FAQ

Q: AUTH 每次操作都要发吗? A: 不是。连接建立时 AUTH 一次即可,后续命令无需重复验证。

Q: Redis 6.0 ACL 和旧版 requirepass 冲突吗? A: 不冲突。未启用 ACL 时 requirepass 生效;启用 ACL(aclfile/acllog)后 requirepass 被忽略。