Redis SHUTDOWN 命令
Redis SHUTDOWN 命令用于关闭 Redis 服务
( Redis >= 1.0.0 )
Redis SHUTDOWN 命令执行以下操作:
- 停止所有客户端
- 如果有至少一个保存点在等待,执行 SAVE 命令
- 如果 AOF 选项被打开,更新 AOF 文件
- 关闭 redis 服务器(server)
如果持久化被打开的话, SHUTDOWN
命令会保证服务器正常关闭而不丢失任何数据。
假如只是单纯地执行 SAVE
命令,然后再执行 QUIT 命令,则没有这一保证 —— 因为在执行 SAVE 之后、执行 QUIT
之前的这段时间中间,其他客户端可能正在和服务器进行通讯,这时如果执行 QUIT 就会造成数据丢失。
SAVE 和 NOSAVE 修饰符
通过使用可选的修饰符,可以修改 SHUTDOWN
命令的表现。比如说:
- 执行
SHUTDOWN SAVE
会强制让数据库执行保存操作,即使没有设定(configure)保存点 - 执行
SHUTDOWN NOSAVE
会阻止数据库执行保存操作,即使已经设定有一个或多个保存点(
可以将这一用法看作是强制停止服务器的一个假想的 ABORT 命令)
语法
Redis SHUTDOWN 命令语法如下:
127.0.0.1:6379> SHUTDOWN [NOSAVE] [SAVE]
返回值
- 执行失败时返回错误。
- 执行成功时不返回任何信息,服务器和客户端的连接断开,客户端自动退出。
范例
因为不想关闭 6379
这台 Redis 服务器。所以新开一个
新开一个命令行(shell)(redis-server-6666)输入以下命令开启一个监听 6666
的 Redis 从服务器
redis-server --port 6666
新开一个命令行(shell)(redis-cli-6666) 输入以下命令链接到 Redis 从服务器(redis-server-6666)
redis-cli -p 6666
然后就可以演示 SHUTDOWN
命令了
redis-cli-6666> PING PONG redis-cli-6666> SHUTDOWN not connected> not connected> $ redis-cli -p 6666 Could not connect to Redis at 127.0.0.1:6666: Connection refused not connected>
这时 redis-server-6666 这台 Redis 就会输出
92380:M 22 Aug 18:52:51.092 # User requested shutdown... 92380:M 22 Aug 18:52:51.092 # Redis is now ready to exit, bye bye...