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
       
       
  • 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数据安全,    

 

02-13 15:54