关闭redis怎么关?redis的关闭

TheDisguiser 2020-03-29 16:46:37 java常见问答 5234

Hello,小伙伴们大家好,之前给大家讲过redis是什么,有什么用,那么大家知道怎么关闭redis吗?redis如果用完之后不关闭的话,就会一直占用电脑资源,使得电脑运行卡顿。小编今天就给大家讲一讲如何关闭redis。

SHUTDOWN[NOSAVE|SAVE] 命令

这个是redis的常用关闭命令,该命令会做以下操作:

停止所有的客户端,断开所有链接如果配置了保存点(save point),则会执行一个阻塞的 SAVE 命令如果配置了AOF的话,会刷新AOF文件退出当前服务

如果开启了持久化,这命令会确保Redis被关闭的时,不会丢失任何数据。如果客户端只简单实用SAVE,和QUIT命令来退出,那么这可能丢失数据。因为可能有其他客户端在2个命令之间修改了数据。

注意: 如果Redis实例没有配置持久化(没配置AOF,也没"SAVE"命令),则在SHUTDOWN的时候,就不会生成RDB文件到磁盘上。

SAVE 和NOSAVE 选项

可以通过指定参数选项来修改这个命令的行为:

SHUTDOWN SAVE 强制执行一个DB的保存操作,就算没有配置保存点(save points)SHUTDOWN NOSAVE 不执行一个DB的保存操作,就算配置了一个或多个保存点(你可以把这个看成是 ABORT 命令,它只是停止服务)

SHUTDOWN 失败,谨慎强制杀死Redis

如果激活了AOF,这SHUTDOWN命令可能会执行失败,因为这系统当前可能无法安全的将数据立刻保存到磁盘。

一般情况下, 如果有一个AOF子进程正在执行一个AOF重写操作,Redis将简单的杀死这子进程然后退出。不过有2种情况,这样操作不安全,这 SHUTDOWN命令会拒绝执行,并返回一个 错误。这2种情况是:

用户刚刚开启 AOF,并且触发了第一次AOF重写,以初始化 AOF 文件。在这种情况下,关闭服务将导致数据完全丢失:一旦重启,这个服务可能会在没有任何AOF文件的情况下,使用AOF来加载数据启动。有一个从服务(slave)激活了AOF,重连到主服务(master),执行一个完全重新同步的操作,重启AOF文件,触发了初始化AOF的操作。 在这种情况下,如果没有完成AOF重写操作是很危险的,因为从master收到的数据集可能会丢失。在下次启动时,这新的master可能是另一个新的实例 (使用 REPLICAOF或SLAVEOF 命令重新配置了复制),所以完成AOF重写是非常重要,这样才可以拿上次关闭时内存中的数据,来启动服务。

当我们有条件的想要尽快的终止一个Redis实例的时。这正确的命令组合应该是,先发送一个 CONFIG appendonly no命令,然后再发送SHUTDOWN NOSAVE命令。这第一个命令将关闭正在运行的AOF,终止AOF重写子进程。第二个命令的执行将不会有任何问题,因为这时候已经没有AOF操作了。

返回值

成功时,没有任何返回。这时候服务已经关闭,且链接已经断开。

失败时,返回一个错。

关闭redis

redis后台服务器开启命令:./redis-server redis.conf (在redis-server redis.conf安装目录下运行)

redis后台服务器的关闭命令:./redis-cli shutdown (同上)

以上就是今天关于redis如何关闭服务的内容,更多相关内容请多多关注本网站吧。