前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 的持久化机制

Redis 的持久化机制

作者头像
Java学习录
发布2019-05-06 15:56:51
5670
发布2019-05-06 15:56:51
举报
文章被收录于专栏:Java学习录Java学习录

本文涉及:Redis的全量备份方式RDB和增量备份方式AOF的相关内容

全量备份RDB

RDB持久化触发方式

触发RDB持久化的过程分为手动触发和自动触发两种方式

手动触发:

  • ·save命令:阻塞当前Redis服务器,直到RDB过程完成为止,除非是没有任何服务在使用此redis,否则千万不要使用此命令进行备份
  • bgsave命令:Redis进程执行fork操作创建子进程,由子进程负责持久化,这个生产环境是可以使用的。

自动触发:

  • 从节点执行全量复制操作时,主节点自动执行bgsave生成RDB文件并发送给从节点
  • 执行debug reload命令重新加载Redis时,也会自动触发bgsave操
  • 默认情况下执行shutdown命令时,如果没有开启AOF持久化功能则自动执行bgsave。

RDB持久化文件

RDB文件默认保存在配置文件中dir属性(./)指定的目录下,以dbfilename(dump.rdb)属性指定的文件名命名

Redis默认采用LZF算法对生成的RDB文件做压缩处理。取消压缩处理可以按照如下方式修改配置

代码语言:javascript
复制
rdbcompression no

增量备份AOF

AOF持久化文件

AOF持久化默认不开启,按照如下方式修改配置可开启AOF持久化

代码语言:javascript
复制
appendonly yes

RDB文件默认保存在配置文件中dir属性(./)指定的目录下,以appendfilename(appendonly.aof)属性指定的文件名命名

AOF文件同步策略

Redis提供了多种AOF缓冲区同步文件策略,由参数appendfsync控制:

  • always,每次写入都要同步AOF文件。Redis本身是纯内存操作,你要是每次写入都要写磁盘那就没有任何意义了
  • no,将同步操作交由操作系统负责,操作系统保证30秒内进行。同步时间不确定,则数据安全也无法让人放心
  • everysec,默认配置,每秒进行一次,生产环境通常都是使用此配置

AOF重写机制

AOF文件记录的是Redis中所有的写操作,例如:

代码语言:javascript
复制
set key1 1 \n set key2 2 \n set key3 3 \n

随着命令不断写入AOF,文件会越来越大。而此时AOF文件中存在很多待优化及无效的数据就需要使用重写机制进行处理。例如:

代码语言:javascript
复制
set key1 1 setkey1 2 setkey1 3 就可以优化成setkey1 3set key2 2 set key2 3 del key2 就可以把所有关于key2的删除掉lpush key 1 lpush key 2 lpush key 2 就可以优化为 lpush key 1 2 3

AOF重写机制触发方式

  • ·手动触发:直接调用bgrewriteaof命令
  • 自动触发:根据auto-aof-rewrite-min-size(运行AOF重写时文件最小体积,默认64MB)和auto-aof-rewrite-percentage(当前AOF文件空间和上一次重写后AOF文件空间的比值)参数确定自动触发时机

Redis数据恢复

Redis启动时是按照如下流程来恢复数据的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档