Linux下,Redis(四)Redis数据持久化

 配置Redis持久化,我也是从官网地址:https://redis.io/topics/persistence 参考配置而且分享给各位,废话很少说,直接配置吧

 

 

-------------------------------------------------分割线-----------------------------------------------------redis

 

 

根据官网介绍,Redis持久化,有两种形式,一种是RDB,另一种是AOF,默认状况下RDB持久化是开启的,那咱们分别来介绍两种持久化的差别跟优缺点吧

 

  •     RDB持久化
    • 什么是RDB?
    • 持久性以指定的时间间隔执行数据集的时间点快照
  •    RDB的优势 
    •  由于是定时备份,能够设置24小时内,RDB文件归档一次,保存30天,这样出现问题,你能够随意恢复当时的数据
    • 由于是定时备份,因此主线程不须要去作持久化的操做,子线程作备份操做就行
    • RDB数据量比AOF更小,因此能更快速的启动
  • RDB的缺点
    • 若是Redis忽然停机,可能会致使某个时间点最新的的数据丢失
    • 为了使用子进程在磁盘上保留RDB,RDB须要常常fork()。若是数据集很大,Fork()会很费时,而且可能致使Redis在几毫秒内中止服务,或者若是数据集很是大而且CPU性能不佳,甚至会持续一秒。

    

   介绍过,RDB后,咱们来讲说RDB的具体操做吧

 

  • 默认状况下,RDB是开启的,能够查看redis.conf文件,能够看到以下内容
  • 上述: save v1 v2, v2个key有变化,则v1秒候持久化一次
  • 而后咱们能够看到 redis目录下会有一个dump.rdb文件,那就是RDB持久化后的文件
  • 若是咱们kill掉redis进程,而后重启,可能会丢失最新写入的数据,重启候,会自动把dump.rdb的文件读入Redis当中
  • 定时持久化的策略能够本身设定, save 60 100 表示,若是有100个key有变化,则60秒后进行持久化

 

须要注意一点的是,若是长时间没有进行RDB持久化的话,当你触发了修改多少个key后,多少时间候进行持久化,不会等多少时间,而是会立刻持久化一次,除非,在上一次持久化的时间间隔内,有这么多key修改过,才会进行间隔时间持久化,篇幅有限,读者能够本身测试安全

 

 

 

 

  •     AOF持久化
    • 什么是AOF?
    • 持久性会记录服务器接收到的每一个写入操做,这些操做将在服务器启动时再次写入,重建原始数据集
  •    AOF的优势 
    • AOF数据更全面,由于是追加每次写入操做,就算服务忽然中止,也只会丢1S的数据
    • 当Redis数据很大的时候,AOF可以自动重写到一个新的文件内
  • RDB的缺点
    • AOF文件一般比相同数据集的等效RDB文件大
    • AOF启动恢复数据,会比RDB慢。

 

   介绍过,AOF后,咱们来讲说AOF的具体操做吧

 

  • 默认状况下,AOF是不开启的,因此,须要咱们手动开启                              将 appendonly no 改为 appendonly yes
  • 而后重启redis,添加k v,在redis根目录下 就会发现 appendonly.aof 文件,就算添加了key,杀掉进程,也能恢复最新的数据

 

 

  • 若是咱们只想要RDB的持久化,那么修改redis.conf文件的appenonly 为no就能够了
  • 若是咱们只想要AOF的持久化,那么修改redis.conf文件的 save 后面变为空就能够了
  • 若是咱们是要切换持久化方式,之前是RDB,想切换成AOF方式,那么咱们须要这么作
    • 备份最新的dump.rdb文件,转移到安全的地方
    • 进入 redis-cli 执行以下命令
    • config set appendonly yes
    • config set save ""
    • 这样,咱们就能够完成,在不重启的状况下,完成RDB->AOF持久化方式的切换
  • 若是咱们一开始持久化的方式是AOF,要切换成RDB,咱们这么操做
    • 进入 redis-cli 执行以下命令
    • config set appendonly no
    • config set save second chang
    • 等RDB持久化后,在 redis-cli 执行
    • config set appendonly no
    • 这样,咱们就能够完成,在不重启的状况下,完成AOF->RDB持久化的方式

 

 

下篇咱们介绍 Redis(五)Redis主从自动切换

 

 

到这,文章就结束了!服务器

以上,均为本人测试而得出的结果,可能会有出入,或者错误,欢迎指正app

欢迎转载,请注明出处跟做者,谢谢!性能

相关文章
相关标签/搜索