您当前的位置:网站首页>Redis>Redis持久化之AOF方式 找Redis教程就上ki4.cc (>^ω^<),Redis

Redis持久化之AOF方式 找Redis教程就上ki4.cc (>^ω^<),Redis

2020年05月23日 投稿作者: 围观人数:39

redis数据持久化之RDB 找Redis教程就上ki4.cc (>^ω^<)

和Memcache不同的是,Redis能够让数据持久化到硬盘中。Redis目前提供三种持久化方式,RDB、AOF、RDB-AOF混合持久化。数据的安全及备份是运维工作中的重点,下面来看看这RDB持久化的介绍及应用场景。

Redis的RDB方式不能做到妙计持久化,但是AOF方式可以做到。如果数据比较重要,丢失会造成严重的后果,那么RDB方式明显不合适,要用到AOF的方式。aof方式和mysql的binlog日志有些像,都只记录新增、修改、删除的操作。不同的是,redis会每隔一段时间后,会对aof文件进行重写,降低aof文件的大小。

AOF工作流程

这里,为什么命令要先写入aof_buf,因为如果直接写入aof文件,那么性能就完全取决去硬盘的io性能。写入aof_buf是为了提高写入的性能。

配置

appendonly:是否开启aof持久化方式,默认是no。如想开启则改为yes。

dir:aof文件存放目录

appendfilename:aof文件名

appendfsync:aof同步方式,有三个值,分别如下:

  • always:每写入一个命令时就同步,数据的安全性最高,但性能差

  • everysec:每秒同步,默认的方式,性能高,安全性也还行

  • no:同步操作交给操作系统,数据的安全性最差。

auto-aof-rewrite-percentage 、auto-aof-rewrite-min-size 这两个配置是和aof重写机制相关的,只有同时满足这两个条件才会触发重写机制。

auto-aof-rewrite-min-size是表示重写时,文件大小必须必这个值要大,默认值是64mb

auto-aof-rewrite-percentage表示目前文件大小比上次重写后的文件大小大这么多才行。

redis通信协议(protocol) 找Redis教程就上ki4.cc (>^ω^<)

Protocol为进行网络中的数据交换而建立的规则、标准或约定。用于不同系统中实体间的通信。本文就来为大家介绍一下redis的通信协议protocol。

AOF重写

redis的aof重写机制有手动触发和自动触发两种方式。手动触发即输入bgrewriteof命令。自动触发即满足上述所有的两个条件。

为什么重写能缩小文件体积,有几种情况:

  • 过期的键及已删除的键将不会再记录

  • 许多单个操作可以有一个操作来完成,比如lpush a、lpush b,重写后就是lpush a b.

下面看看aof重写流程

  1. 执行bgrewriteof命令

  2. 主进程fork出一个子进程

  3. 原有的aof机制继续运行,同时,也将新的命令写入到aof_rewrite_buf中

  4. 子进程生成新的aof文件

  5. 通知父进程,新的aof文件已经生成成功;将aof_rewrite_buf中的命令追加到新的aof文件中;用新的aof文件替换旧的aof文件。

  6. 完成以上步骤后,aof重写就完成了。

注意,如果一个服务器上面有多个redis服务,那么最好将他们重写的时间分隔开,防止io及cpu竞争过大。

以上就是Redis持久化之AOF方式的详细内容,更多请关注ki4导航其它相关文章!

解决Redis容器使用redis.conf启动失败 找Redis教程就上ki4.cc (>^ω^<)

本文实现功能解决redis容器启动redis.conf时启动及失败,简单了解redis.conf的一些配置,认识docker run命令的参数,了解redis.conf的配置文件,打开redis.conf后会看到很多的无用信息...

标签

版权说明
免责声明:本文文章内容由ki4导航网发布,但不代表本站的观点和立场,具体内容可自行甄别.