美文网首页
redis-持久化

redis-持久化

作者: x1wan | 来源:发表于2016-12-26 17:37 被阅读129次

1、概述

redis支持两种持久化方式,rdb和aof。rdb是数据库某一时刻的快照,aof是Append Only File,aof通过写命令记录数据库的状态。目前我们线上没开rdb,主从redis都开启了aof everysec。

2、RDB

有两个命令可以生成RDB文件,一个是save,另一个是bgsave。

save命令会阻塞redis进程,直到生成rdb文件,阻塞期间不能处理任何命令,一般线上很少使用。

bgsave命令的保存工作是由子进程执行的,子进程生成rdb文件的过程中,主进程仍然可以处理客户端的命令。

用户可以通过redis配置来设置rdb的保存频率,服务器是通过执行bgsave来生成rdb文件的。

save  900  1:服务器在900秒之内,对数据库至少进行了1次修改

save  300  10:服务器在300秒之内,对数据库至少进行了10次修改

save  60  10000:服务器在60秒之内,对数据库至少进行了10000次修改

3、aof

aof记录的是redis接收到的客户端写请求,当redis接收到写命令时,会先记录到内存的aof_buf缓冲区的末尾,当满足配置的aof持久化策略时,就会写入或同步到磁盘中。

always:每个事件循环将aof_buf缓冲区中的内容写入并同步到aof文件。

everysec:每个事件循环将aof_buf缓冲区中的内容写入到aof文件,每1秒同步一次。

no:每个事件循环将aof_buf缓冲区中的内容写入到aof文件,但并不对aof文件进行同步,同步交给系统处理。

aof文件里面有很多失效的数据,会占用大量的空间,redis会根据配置对aof文件进行重写。

no-appendfsync-on-rewrite no 在aof文件重写时appendfsync选项是否设置成no,如果设置成no将会将同步磁盘的工作交给系统,如果redis挂了有一些写记录是没有同步到aof文件中的,会丢失部分数据,如果设置不设置成no将会根据appendfsync同步数据,两个进程同时向磁盘同步数据会出现写抖动。

auto-aof-rewrite-percentage 100 当前aof文件大小是上次日志重写得到aof文件大小的二倍时,自动启动新的日志重写过程。

auto-aof-rewrite-min-size 64mb  当前aof文件启动重写过程的最小值,避免刚刚启动reids时由于文件尺寸较小导致频繁的重写。

aof重写是通过子进程进行的,重写过程中如果redis收到新的写命令将会记录到重写缓冲区中,主进程定期调用wait3函数等待子进程退出,并将重写缓冲区中的日志记录到新的aof文件中。

4、其它

redis启动的时候,优先加载aof文件,如果aof没有aof文件,再加载rdb文件。

相关文章

  • Redis-持久化

    Redis-持久化 一、RDB持久化 为了解决服务器进程退出导致数据丢失,Redis提过了RDB持久化功能,可以将...

  • redis-持久化

    ### 0 命令 #### 常用命令 [参考](https://blog.csdn.net/IT_faquir/a...

  • redis-持久化

    1、概述 redis支持两种持久化方式,rdb和aof。rdb是数据库某一时刻的快照,aof是Append Onl...

  • redis-持久化

    持久化 本文提供对 Redis 持久化(persistence)的技术性描述,适合所有的 Redis 用户来阅读。...

  • Redis-持久化

    持久化 1.快照(一次全量备份)(默认的持久化策略) 2.AOF日志(连续的增量备份) 3.Redis4.0混合持...

  • Redis-持久化

    持久化机制 RDB(默认开启的) RDB:Redis(单进程:不能同时处理命令和处理持久化)会单独创建fork一个...

  • Redis-持久化

    持久化 by shihang.mai 凡是存储,都有快照/副本、日志 1. RDB RDB(redis db)描述...

  • redis-持久化

    redis的持久化有两种方式:RDB和AOF。 RDB持久化功能是将某个时间点的数据库状态保存到一个RDB文件上(...

  • redis-持久化

    持久化分类 AOF:将每次执行的写命令保存到硬盘RDB:将当前进程中的数据生成快照保存到硬盘 比较:RDB文件紧凑...

  • 深入学习redis-持久化

    前言 在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、...

网友评论

      本文标题:redis-持久化

      本文链接:https://www.haomeiwen.com/subject/tbpjvttx.html