Redis(持久化)

文章目录

1.RDB

1.介绍
2.RDB执行流程
3.持久化配置
1.Redis持久化的文件是dbfilename指定的文件
2.配置基本介绍
1.进入redis配置文件
sh 复制代码
vim /etc/redis.conf
2.搜索dbfilename,此时的dump.rdb就是redis持久化的文件
3.搜索dir,每次持久化文件,都会在启动redis的当前目录下生成,并且每次找的也是当前目录的dump.rdb文件进行恢复
3.持久化配置
1.修改dir的配置为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复
2.重启redis,使其生效
3.进入root目录下,可以看到dump.rdb生成了
4.默认快照配置
  • 如果没有打开注释,默认不会自动备份,只有在shutdown的时候才会备份
5.手动进行持久化操作
1.常用命令
2.一般在命令行使用bgsave进行异步快照操作
3.lastsave返回上一次保存的unix时间戳
6.flushall
1.介绍
7.其余rdb配置
1.save 如果要禁用持久化就设置为空串
2.stop-writes-on-bgsave-error 如果磁盘满了,就不再写入,推荐yes
3.rdbcompression 是否将快照进行压缩存储,默认yes
4.是否开启数据校验,默认yes
5.动态停止rdb(临时生效,重启就失效)
8.rdb配置实例
1.需求:如果Redis的key在30s内有五个key变化,就自动进行rdb备份
2. 编辑配置文件,找到save设置,进行配置
3.重启redis,使配置生效
4.去/root/目录下查看目前的持久化文件的大小
5.重新登陆redis命令行,在30s内设置至少五次key
6.在30s后查看持久化文件,变成104了
4.RDB备份和恢复
1.备份使用cp指令即可
2.恢复是在启动的时候读取配置文件中的dir的目录下的dump.rdb进行恢复
5.RDB的优势和劣势
1.优势
2.劣势

2.AOF

1.基本介绍
1.AOF是什么?
2.AOF持久化的流程
2.开启AOF配置
1.开启方式
2.开启AOF
1.编辑配置文件找到appendonly,设置成yes
2.重启redis,使配置生效,在/root/目录下生成了aof文件
3.可以发现aof文件是空的,但是当RDB和AOF同时开启,默认读取的是aof文件,进行恢复,所以登录命令行,查看目前的库应该是空的
3.AOF机制实例
1.进入redis客户端,进行一些操作
2.查看aof文件,可以看到记录了set和del指令,并没有记录get指令
4.AOF恢复
在开启了AOF的条件下,启动Redis时,会自动读取配置文件中配置的dir目录下的aof文件进行恢复
5.AOF异常修复(数据可能丢失)
1.首先关闭redis,退出客户端
2.编辑aof文件,在最后添加一些字母
3.重启redis,发现启动失败了
4.执行在/usr/local/bin下的 redis-check-aof --fix 文件名 进行修复,由于/usr/local/bin是环境变量,就可以直接使用
sh 复制代码
redis-check-aof --fix /root/appendonly.aof 
5.此时再重新启动redis,可以看到启动成功
6.连接客户端,查看数据,由于之前是在文件后面加的内容,所以这次数据没有丢失
6.AOF同步频率(从缓冲区同步到aof文件的频率,用默认的即可)
7.Rewrite压缩
1.基本介绍
2.主动触发
3.修改配置,自动触发
4.关于配置自动触发的解析
  • 第一个配置是自动触发的百分比,就是每次触发压缩,redis都会记录当前的文件大小,如果配置了100,就表示当文件大小是原来文件大小的(100 + 100) %也就是百分之二百时,自动触发压缩
  • 第二个配置是自动触发的最小内存,配置的64mb,指的就是,文件最小是64mb才能够自动触发压缩机制
8.AOF的优势和劣势
1.优势
2.劣势
3.如何选择?官方推荐都打开,不冲突,只是恢复的时候会使用aof文件进行恢复(数据一致性更好)
相关推荐
Code apprenticeship2 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站2 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶2 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
黄名富6 小时前
Redis 附加功能(二)— 自动过期、流水线与事务及Lua脚本
java·数据库·redis·lua
G_whang7 小时前
centos7下docker 容器实现redis主从同步
redis·docker·容器
.生产的驴7 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
我叫啥都行10 小时前
计算机基础复习12.22
java·jvm·redis·后端·mysql
阿乾之铭11 小时前
Redis四种模式在Spring Boot框架下的配置
redis
on the way 12313 小时前
Redisson锁简单使用
redis
科马14 小时前
【Redis】缓存
数据库·redis·spring·缓存