备份:bgsave  //将dump.rdb保存到usr/local下

恢复:将dump.rdb放到redis安装目录与redis.conf同级目录,重启redis即可

2.3 恢复和异常流程演示

1,查看启动目录,没有dump文件

windows redis退出命令 redis shutdown nosave_面试

2、set值

windows redis退出命令 redis shutdown nosave_后端_02


windows redis退出命令 redis shutdown nosave_后端_03


3、执行shutdown命令关掉服务,查看目录,已经生成对应的dump文件。

windows redis退出命令 redis shutdown nosave_windows redis退出命令_04

4、重启redis服务,发现数据还存在

windows redis退出命令 redis shutdown nosave_持久化_05

5、执行shutdown命令关掉服务,并把dump文件删除

windows redis退出命令 redis shutdown nosave_面试_06

6、启动redis在进行查看,发现存储的数据已经不存在了。

windows redis退出命令 redis shutdown nosave_java_07

2.4 RDB持久化的优缺点

优点:

  • 压缩后的二进制文,适用于备份、全量复制,用于灾难恢复
  • 加载RDB恢复数据远快于AOF方式

缺点:

  • 无法做到实时持久化,每次都要创建子进程,频繁操作成本过高

三、AOF持久化

===============================================================================

针对RDB不适合实时持久化,redis提供了AOF持久化方式来解决

开启方式就是在redis.conf设置:appendonly yes  (默认不开启,为no)

windows redis退出命令 redis shutdown nosave_后端_08

默认文件名:appendfilename “appendonly.aof”

3.1 AOF持久化原理

  1. 所有的写入命令(set hset)会append追加到aof_buf缓冲区中
  2. AOF缓冲区向硬盘做sync同步
  3. 随着AOF文件越来越大,需定期对AOF文件rewrite重写,达到压缩
  4. 当redis服务重启,可load加载AOF文件进行恢复

windows redis退出命令 redis shutdown nosave_持久化_09

3.2 AOF持久化配置

| | |
| — | — |
| 配置信息 | 含义 |
| appendonly yes | 启用aof持久化方式 |
| appendfsync always | 每收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用 |
| appendfsync everysec | 每秒强制写入磁盘一次,性能和持久化方面做了折中,推荐 |
| no-appendfsync-on-rewrite  yes | 正在导出rdb快照的过程中,要不要停止同步aof |
| auto-aof-rewrite-percentage 100 | aof文件大小比起上次重写时的大小,增长率100%时,重写 |
| auto-aof-rewrite-min-size 64mb | aof文件,至少超过64M时,重写 |