*Redis QUIT 命令

关闭当前客户端连接。


*语法

QUIT

*参数说明

参数 类型 必填 说明
- - 本命令无参数

*返回值

条件 返回值
总是 OK,随后连接被关闭

*时间复杂度

O(1)

*

*示例

*基本用法

> QUIT
OK
# 连接已断开

*在脚本中发送 QUIT

# 通过 redis-cli
redis-cli QUIT
OK

# 在交互式会话中
redis-cli
127.0.0.1:6379> QUIT

*连接池归还连接

# 应用程序在归还连接到池前发送 QUIT
> QUIT
OK
# 连接关闭,服务器立即回收资源

*常见错误

错误 原因 解决
ERR wrong number of arguments 传入了额外参数 QUIT 命令不带任何参数
连接已断开 发送 QUIT 后尝试执行其他命令 重新建立连接

*最佳实践

  • 场景:客户端优雅退出、连接池释放连接、脚本结束会话
  • 直接断开 TCP 连接与发送 QUIT 效果类似,但 QUIT 更优雅,服务器可立即回收资源
  • 连接池通常直接关闭连接,无需显式发送 QUIT
  • 在 pipeline 或事务中避免使用 QUIT,应在所有命令处理完成后再发送

*FAQ

Q1: QUIT 和直接断开 TCP 连接有什么区别? A: 效果类似。QUIT 让服务器立即知道客户端主动断开,可更快回收资源;直接断开连接由服务器通过超时机制检测并清理。QUIT 更优雅,但在大多数场景下差别不大。

Q2: 发送 QUIT 后还能执行其他命令吗? A: 不能。发送 QUIT 后服务器立即关闭连接,后续命令无法执行,客户端会收到连接断开错误。

Q3: QUIT 会触发键空间通知或事件吗? A: 不会。QUIT 只影响当前客户端连接,不会触发键空间通知或修改任何数据。与 FLUSHALLSHUTDOWN 完全不同。