假如咱们对数据要求比较高,每一秒的数据都不能丢,RDB 耐久化方法肯定是不能够满意要求的,那 Redis 有没有方法满意呢,答案是有的,那便是接下来的 AOF 耐久化方法

*2

$6

SELECT

$1

0

*3

$3

set

$6

mykey1

$6

你好

*3

$3

set

$4

key2

$5

hello

*1

$8

大约便是长这样的,详细的你能够检查你 Redis 服务器上的 appendonly.aof 配置文件,这也意味着咱们能够在 appendonly.aof 文件我国修正值,等 Redis 重启时将会加载修正之后的值。看似一些简略的操作指令,其实从指令到 appendonly.aof 这个进程中非常有学识的,下面时 AOF 耐久化流程图:

*2

$6

SELECT

$1

0

*3

$3

set

$6

mykey1

$6

你好

*3

$3

set

$4

key2

$5

hello

*1

$8

*2

$6

SELECT

$1

0

*3

$3

set

$6

mykey1

$6

你好

*3

$3

set

$4

key2

$5

hello

*1

$8

1、为什么要将指令写入到 aof_buf 缓存区而不是直接写入到 aof 文件? 咱们知道 Redis 是单线程呼应,假如每次写入 AOF 指令都直接追加到磁盘上的 AOF 文件中,这样频频的 IO 开支,Redis 的功能就完结取决于你的机器硬件了,为了提高 Redis 的呼应功率就添加了一层 aof_buf 缓存层, 使用的是操作系统的 cache 技能,这样就提高了 Redis 的功能,尽管这样功能是处理了,可是一起也引入了一个问题,aof_buf 缓存区数据怎么同步到 AOF 文件呢?由谁同步呢?这便是咱们接下来要聊的一个操作: fsync 操作

Online
TEL