redis学习 AOF

RDB缺点:

执行的复杂度为O(n)级别的,比较耗时

fork操是消耗内存的

写入磁盘会消耗io性能

AOF是redis的一种持久化策略

AOF中记录着redis客户端所作的一系列操作,客户端执行一次命令就会追加到AOF文件中

AOF中存的是客户端执行的redis命令

AOF策略:

redis执行写操作时,不会立即就将数据写到硬盘中,而是先将数据写到缓冲区,提高写的效率

always: 缓冲区一有命令,就将命令写入到AOF中,io开销比较大

everysec:每隔一秒写入AOF中一次,允许有一秒的数据丢失

no:由os来决定什么时候写入到AOF文件中

AOF重写:

AOF文件中可能会存在大量的重复命令,或者是过期命令

例如set a a    set a b   这两条数据,其实只有第二条命令有效

AOF重写机制会将AOF文件中的命令优化,达到只执行有效命令的作用

AOF作用:

减少磁盘的占用量

加快恢复的速度

AOF重写实现方式:

1.bgrewriteaof

       客户端执行bgrewriteaof,服务器会异步的fork出子进程来进行aof中重写

2.AOF重写配置

       auto-aof-rewrite-min-size  AOF文件重写需要的最小尺寸,AOF文件达到多大进行文件的重写 

       auto-aof-rewrite-percentage AOF文件的增长率,aof增长多少之后进行文件的重写

       aof_current_size  AOF文件当前的尺寸

       aof_base_size AOF重写时 的尺寸,AOF上次启动时的尺寸

3启用AOF配置

appendonly yes   是同aof策略的基础,必须开启

appendfilename "name" AOF文件的名称

appendsync everysec AOF执行的策略 每秒执行一次

dir /path  AOF文件的文件路径

no-appendfsync-on-rewrite yes AOF重写过程中是否需要重写到aof文件中 yes为不需要,放置磁盘的性能下降

auto-aof-rewrite-percentage 100 AOF文件的增长率为100%是重写

auto-aof-rewrite-min-size 64mb AOF重写的文件大小

猜你喜欢

转载自blog.csdn.net/qq_32182461/article/details/82425596