文章目录
-
- 1.RDB
-
-
- 1.介绍
- 2.RDB执行流程
- 3.持久化配置
-
- 1.Redis持久化的文件是dbfilename指定的文件
- 2.配置基本介绍
- 3.持久化配置
- 4.默认快照配置
- 5.手动进行持久化操作
- 6.flushall
- 7.其余rdb配置
-
- [1.save 如果要禁用持久化就设置为空串](#1.save 如果要禁用持久化就设置为空串)
- [2.stop-writes-on-bgsave-error 如果磁盘满了,就不再写入,推荐yes](#2.stop-writes-on-bgsave-error 如果磁盘满了,就不再写入,推荐yes)
- [3.rdbcompression 是否将快照进行压缩存储,默认yes](#3.rdbcompression 是否将快照进行压缩存储,默认yes)
- 4.是否开启数据校验,默认yes
- 5.动态停止rdb(临时生效,重启就失效)
- 8.rdb配置实例
-
- 1.需求:如果Redis的key在30s内有五个key变化,就自动进行rdb备份
- [2. 编辑配置文件,找到save设置,进行配置](#2. 编辑配置文件,找到save设置,进行配置)
- 3.重启redis,使配置生效
- 4.去/root/目录下查看目前的持久化文件的大小
- 5.重新登陆redis命令行,在30s内设置至少五次key
- 6.在30s后查看持久化文件,变成104了
- 4.RDB备份和恢复
- 5.RDB的优势和劣势
-
- 2.AOF
-
-
- 1.基本介绍
- 2.开启AOF配置
-
- 1.开启方式
- 2.开启AOF
- 3.AOF机制实例
- 4.AOF恢复
- 5.AOF异常修复(数据可能丢失)
-
- 1.首先关闭redis,退出客户端
- 2.编辑aof文件,在最后添加一些字母
- 3.重启redis,发现启动失败了
- [4.执行在/usr/local/bin下的 redis-check-aof --fix 文件名 进行修复,由于/usr/local/bin是环境变量,就可以直接使用](#4.执行在/usr/local/bin下的 redis-check-aof --fix 文件名 进行修复,由于/usr/local/bin是环境变量,就可以直接使用)
- 5.此时再重新启动redis,可以看到启动成功
- 6.连接客户端,查看数据,由于之前是在文件后面加的内容,所以这次数据没有丢失
- 6.AOF同步频率(从缓冲区同步到aof文件的频率,用默认的即可)
- 7.Rewrite压缩
- 8.AOF的优势和劣势
-
1.RDB
1.介绍
![](https://file.jishuzhan.net/article/1787890509952323585/59f4319a6ac35253b5a3fc0139ec0e0d.webp)
2.RDB执行流程
![](https://file.jishuzhan.net/article/1787890509952323585/da2ec91484ea422d70693aa1ca779cfc.webp)
![](https://file.jishuzhan.net/article/1787890509952323585/397c4922dcdebab8a638878be3fbc6c3.webp)
3.持久化配置
1.Redis持久化的文件是dbfilename指定的文件
![](https://file.jishuzhan.net/article/1787890509952323585/532fc01e3c1c2f79995055014068b52a.webp)
2.配置基本介绍
1.进入redis配置文件
sh
vim /etc/redis.conf
2.搜索dbfilename,此时的dump.rdb就是redis持久化的文件
![](https://file.jishuzhan.net/article/1787890509952323585/e2f6cc67314f324c097b9f58744a10ec.webp)
3.搜索dir,每次持久化文件,都会在启动redis的当前目录下生成,并且每次找的也是当前目录的dump.rdb文件进行恢复
![](https://file.jishuzhan.net/article/1787890509952323585/e226478a9a2c30bfb798b92dba3a74b3.webp)
3.持久化配置
1.修改dir的配置为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复
![](https://file.jishuzhan.net/article/1787890509952323585/3e7fed70c4745ca7e8f7b093bf8d01bb.webp)
2.重启redis,使其生效
![](https://file.jishuzhan.net/article/1787890509952323585/1123e50d0375bf05b8923b7fee89f129.webp)
3.进入root目录下,可以看到dump.rdb生成了
![](https://file.jishuzhan.net/article/1787890509952323585/490972163d794addd42c53d105ce5d1f.webp)
4.默认快照配置
- 如果没有打开注释,默认不会自动备份,只有在shutdown的时候才会备份
![](https://file.jishuzhan.net/article/1787890509952323585/51ef6621e95df2d6e2f92193705471f3.webp)
![](https://file.jishuzhan.net/article/1787890509952323585/4f65181f71751239c65b27d7f3c016c0.webp)
5.手动进行持久化操作
1.常用命令
![](https://file.jishuzhan.net/article/1787890509952323585/838bec29aeaf9e2ef1f95c2412e83c37.webp)
2.一般在命令行使用bgsave进行异步快照操作
![](https://file.jishuzhan.net/article/1787890509952323585/4ee2b23a625b4f2b17a5a7049809f56b.webp)
3.lastsave返回上一次保存的unix时间戳
![](https://file.jishuzhan.net/article/1787890509952323585/9b00010469567ea239e8a05b1bfef9e7.webp)
6.flushall
1.介绍
![](https://file.jishuzhan.net/article/1787890509952323585/5334d19144f81cf61783d99ab6b4fca3.webp)
7.其余rdb配置
1.save 如果要禁用持久化就设置为空串
2.stop-writes-on-bgsave-error 如果磁盘满了,就不再写入,推荐yes
![](https://file.jishuzhan.net/article/1787890509952323585/50557c9f5414b763352f65a0192df006.webp)
3.rdbcompression 是否将快照进行压缩存储,默认yes
![](https://file.jishuzhan.net/article/1787890509952323585/dd83f7d606a4e67a5bd48b24a06ee638.webp)
![](https://file.jishuzhan.net/article/1787890509952323585/3d74cf7d6127c80fa68e25667218a82d.webp)
4.是否开启数据校验,默认yes
![](https://file.jishuzhan.net/article/1787890509952323585/cabe40b7bea60bc38e74603971082eca.webp)
5.动态停止rdb(临时生效,重启就失效)
![](https://file.jishuzhan.net/article/1787890509952323585/529f5e4ce60023bdd094b00d60f32926.webp)
8.rdb配置实例
1.需求:如果Redis的key在30s内有五个key变化,就自动进行rdb备份
2. 编辑配置文件,找到save设置,进行配置
![](https://file.jishuzhan.net/article/1787890509952323585/787543256f741be44066287d1a3229cb.webp)
3.重启redis,使配置生效
![](https://file.jishuzhan.net/article/1787890509952323585/1c4d0a669c666f4aa5cec455f480b58d.webp)
4.去/root/目录下查看目前的持久化文件的大小
![](https://file.jishuzhan.net/article/1787890509952323585/7c5f961eb6f50671d772fba64763c987.webp)
5.重新登陆redis命令行,在30s内设置至少五次key
![](https://file.jishuzhan.net/article/1787890509952323585/2a350f7bb023b0cf7e6b2fc46890e4d1.webp)
6.在30s后查看持久化文件,变成104了
![](https://file.jishuzhan.net/article/1787890509952323585/ca09aa76e6a3f509b87f2c11cfd60fc7.webp)
4.RDB备份和恢复
1.备份使用cp指令即可
2.恢复是在启动的时候读取配置文件中的dir的目录下的dump.rdb进行恢复
5.RDB的优势和劣势
1.优势
![](https://file.jishuzhan.net/article/1787890509952323585/b8b086659929d7e95e8d1eab44fe2288.webp)
2.劣势
![](https://file.jishuzhan.net/article/1787890509952323585/4afef1dc2123dbfae808aea027254447.webp)
2.AOF
1.基本介绍
1.AOF是什么?
![](https://file.jishuzhan.net/article/1787890509952323585/8d1a44f85783bb02eaa2948088480b57.webp)
2.AOF持久化的流程
![](https://file.jishuzhan.net/article/1787890509952323585/59dc4a53d4a8fdf30a8fce36522f6162.webp)
![](https://file.jishuzhan.net/article/1787890509952323585/fd9fbf0234cb47a88a0c51bac825a511.webp)
2.开启AOF配置
1.开启方式
![](https://file.jishuzhan.net/article/1787890509952323585/168ba6d7c006f7aec9698bc791d5c84b.webp)
2.开启AOF
1.编辑配置文件找到appendonly,设置成yes
![](https://file.jishuzhan.net/article/1787890509952323585/8789a7a053ae50467f89eebc79ea5640.webp)
2.重启redis,使配置生效,在/root/目录下生成了aof文件
3.可以发现aof文件是空的,但是当RDB和AOF同时开启,默认读取的是aof文件,进行恢复,所以登录命令行,查看目前的库应该是空的
![](https://file.jishuzhan.net/article/1787890509952323585/5843fca06e81bb74cd45ed0b92464ae1.webp)
3.AOF机制实例
1.进入redis客户端,进行一些操作
![](https://file.jishuzhan.net/article/1787890509952323585/57ca952f1a7cd965862928c09e995a12.webp)
2.查看aof文件,可以看到记录了set和del指令,并没有记录get指令
![](https://file.jishuzhan.net/article/1787890509952323585/3272020ae2d425eedd438ca3ab826694.webp)
4.AOF恢复
在开启了AOF的条件下,启动Redis时,会自动读取配置文件中配置的dir目录下的aof文件进行恢复
5.AOF异常修复(数据可能丢失)
1.首先关闭redis,退出客户端
![](https://file.jishuzhan.net/article/1787890509952323585/f628c77445e4040aa968cb5e222dd6c5.webp)
2.编辑aof文件,在最后添加一些字母
![](https://file.jishuzhan.net/article/1787890509952323585/50ce51c778c370842652574f09cb02d8.webp)
3.重启redis,发现启动失败了
![](https://file.jishuzhan.net/article/1787890509952323585/d36ff237b7bfc6b8a67d202b3405cbb3.webp)
4.执行在/usr/local/bin下的 redis-check-aof --fix 文件名 进行修复,由于/usr/local/bin是环境变量,就可以直接使用
sh
redis-check-aof --fix /root/appendonly.aof
![](https://file.jishuzhan.net/article/1787890509952323585/01c77ebffcb22ba775accf93c36865e0.webp)
5.此时再重新启动redis,可以看到启动成功
![](https://file.jishuzhan.net/article/1787890509952323585/80ff4906682af2ec7b251d70bc3cf7df.webp)
6.连接客户端,查看数据,由于之前是在文件后面加的内容,所以这次数据没有丢失
![](https://file.jishuzhan.net/article/1787890509952323585/0f4eb16c4a6bfcd423dd4d0106cc805a.webp)
6.AOF同步频率(从缓冲区同步到aof文件的频率,用默认的即可)
![](https://file.jishuzhan.net/article/1787890509952323585/f2cac31b8f266212f8e10ed4d6cc72d5.webp)
7.Rewrite压缩
1.基本介绍
![](https://file.jishuzhan.net/article/1787890509952323585/ae6e2ff60efbd54e67211a3e4d64449d.webp)
2.主动触发
![](https://file.jishuzhan.net/article/1787890509952323585/be25fbb2d459a1e8979473009284a33b.webp)
3.修改配置,自动触发
![](https://file.jishuzhan.net/article/1787890509952323585/5bbfd66a9ec91839756cc43f1b439a4e.webp)
4.关于配置自动触发的解析
- 第一个配置是自动触发的百分比,就是每次触发压缩,redis都会记录当前的文件大小,如果配置了100,就表示当文件大小是原来文件大小的(100 + 100) %也就是百分之二百时,自动触发压缩
- 第二个配置是自动触发的最小内存,配置的64mb,指的就是,文件最小是64mb才能够自动触发压缩机制
8.AOF的优势和劣势
1.优势
![](https://file.jishuzhan.net/article/1787890509952323585/0c2b9b90f46fc403abd8d854c3e0fe28.webp)
2.劣势
![](https://file.jishuzhan.net/article/1787890509952323585/a3fcef1c38115c22bac232143b1c8bcb.webp)