05.Redis服务的启停过程
一、Redis服务的启动过程
01:Redis服务进行初始化(启动); 02:从磁盘加载数据库; A:若之前有持久化的数据则会把数据给加载到内存; B:若之前没有持久化的数据那么启动会则没有数据; C:若启动时找到不之前持久化的数据文件,则没有数据; 03:Redis服务启动完成 04:准备接受客户端连接 21066:M 22 Feb 09:08:50.299 # Server initialized 21066:M 22 Feb 09:08:50.299 * DB loaded from disk: 0.000 seconds 21066:M 22 Feb 09:08:50.299 # Server initialized 21066:M 22 Feb 09:08:50.299 * Ready to accept connections 21066:M 22 Feb 09:08:50.299 * The server is now ready to accept connections at /data/redis/6379/run/redis.sock
二、Redis服务的关闭过程
## 基本RDB持久化情况下的关机过程
## RDB持久化情况下的关机过程
01:发起关闭redis服务的请求;
02:保存最终的RDB快照
03:保存到磁盘(体现就是一个dump.rdb文件);
04:移除pid文件;
05:移除socket文件;
06:准备退出,拜拜
20378:M 22 Feb 07:46:57.570 # User requested shutdown...
20378:M 22 Feb 07:46:57.570 * Saving the final RDB snapshot before exiting.
20378:M 22 Feb 07:46:57.571 * DB saved on disk
20378:M 22 Feb 07:46:57.571 * Removing the pid file.
20378:M 22 Feb 07:46:57.571 * Removing the unix socket file.
20378:M 22 Feb 07:46:57.571 # Redis is now ready to exit, bye bye...
## 那么问题来了
01:开启了RDB持久化,添加数据(set key01 "chenliang"),但没还没达到为RDB自动
持久化的条件(save 900 1),此时正常关闭redis服务会怎样?
## 解答
01:键key01对应的数据会被持久化,因为停服时会自动保持一次;
02:在redis恢复后,数据也是存在的;
02:开启了RDB持久化,添加数据(set key02 "lili"),但还没达到RDB自动持久化的条
件(save 900 1),此时非正常关闭(kill或kill -9杀掉了线程)redis服务的数据
会怎样?
## 解答
01:使用kill+进程号的方式关闭redis服务,是可以保存数据的(可以看日志),那么
再次启动redis服务时,数据都还是存在的;
02:使用kill -9 + 进程号的方式关闭redis服务,无法保存数据(可以看日志),那么
再次启动redis服务时,丢失数据(离上次持久时这个阶段的数据会丢); 相关推荐
王道革 2020-11-25
wangdonghello 2020-11-03
chenhualong0 2020-11-16
聚合室 2020-11-16
koushr 2020-11-12
guoyanga 2020-11-10
fackyou00 2020-11-10
Orangesss 2020-11-03
dongCSDN 2020-10-31
Quietboy 2020-10-30
liuyulong 2020-10-29
fansili 2020-10-29
温攀峰 2020-10-23
jackbon 2020-10-19
kaixinfelix 2020-10-04