redis持久化之RDB和AOF
- redis持久化
- redis是内存型数据库, 一旦服务器退出, 数据库的数据全部丢失, 为了解决这个问题, redis提供了两种持久化的方案, 将内存中的数据保存到硬盘中, 他可以手动执行
- RDB持久化
- rdb持久化, 可以将redis的状态保存到硬盘中, 可以手动执行,也可以在redis.conf配置, 定期执行
- rdb持久化产生的rdb文件是一个二进制文件, 这个文件保存在硬盘中, redis可以通过这个文件还原数据库当时的状态
在制定的时间间隔内生成数据集的时间点快照 (point - in - time snapshot ) 优点 : 速度快, 适合做备份, 主从复制就是你给予rdb持久化功能实现 rdb通过redis中使用save命令触发 # rdb参数配置 dir /data/6379 dbfilename dump.rdb save 900 1 save 300 10 save 60 10000
- rdb持久化实践
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 #定义持久化文件存储位置 dbfilename dbmp.rdb #rdb持久化文件 bind 10.0.0.10 127.0.0.1 #redis绑定地址 requirepass redhat #redis登录密码 save 900 1 #rdb机制 每900秒 有1个修改记录 save 300 10 #每300秒 10个修改记录 save 60 10000 #每60秒内 10000修改记录
- 启动redis服务端
- 登录redis设置一个key
- redis-cli -a red hat
- 此时检查目录, /data/6379下面没有dbmp.rdb文件
- 通过save触发持久化, 讲数据写入rdb文件
- save
- save
- redis持久化之AOF
- 记录服务器执行的所有变更操作命令, 并在服务器启动时, 通过重新执行这些命令来还原数据
- AOF文件中命令全部以redis协议的格式保存, 新命令追加到文件末尾
- 优点: 最大程度保证数据不丢失,
- 缺点: 日志记录非常大
- redis-cli 写入数据 > redis-servver 同步命令 > AOF 文件
配置参数
# AOF持久化配置, 两条参数 appendonly yes appendfsync always # 总是修改类的操作 everysec # 每秒做一次持久化 no # 依赖于系统自带的缓存大小机制
AOF实践:
1. 准备aof配置文件 , redis.conf
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 dbfilename dump.rdb requirepass redhat save 900 1 save 300 10 savve 60 10000 appendonly yes appendfsync everysec
2. 启动redis服务
redis-server /etc/redis.conf
3. 检查redis数据目录, /data/6379 是否产生了aof文件
appendonly.aof dbmp.rdb redis.log
4.登录redis-cli, 写入数据, 实时检查aof文件信息
tail -f appendonly.aof
5. 设置新key, 检查aof信息, 然后关闭redis, 检查数据是否持久化
reids-cli -a redhat shutdown
redis-server /etc/redis.conf
redis-cli -a redhat
redis持久化方式有哪些, 有什么区别?
rdb: 基于快照的持久化, 速度更快, 一般用作备份, 主从复制也是依赖于rdb持久化功能
aof: 以追加的方式记录redis操作日志的文件, 可以最大成都的保证redis数据安全,