Redis的两种持久化方式

1、两种持久化方式

1.1、RDB

简介:RDB是将数据库中的数据定期以快照的方式存储到磁盘,保存到rdb文件中,并在启动时自动加载rdb文件,以达到数据持久化。redis默认开启的是RDB持久化方式。

设置自动保存触发条件

  • 通过redis.conf配置文件设置RDB持久化

默认的持久化条件为 save 3600 1 300 100 60 10000,说明:

  • save 3600 1         # 在 3600 秒 (1 小时) 内发生 1 次写操作
  • save 300 100       # 在 300 秒 (5 分钟) 内发生 100 次写操作
  • save 60 10000     # 在 60 秒 (1 分钟) 内发生 1 万次写操作

如果想要关闭RDB持久化,设置save ""即可。

手动触发保存快照

SAVE命令:运行此命令时,将会阻塞主进程进行快照保存,直至快照保存完毕,主进程才会继续处理Redis的请求。


BGSAVE命令:运行此命令时,将会产生一个子进程进行快照保存,快照保存时不会阻塞主进程,主进程仍然可以处理Redis请求。

 

1.2、AOF

简介:Redis会把每一次操作都记录到一个文件中,当Redis进行重启时会把AOF产生的文件中的所有操作执行一遍,确保数据恢复到最新。

开启AOF

  • 通过修改配置文件,把redis.conf里的appendonly属性改为yes
  • 通过命令更改配置:config set appendonly yes | no

AOF提供了三种fsync配置:

  • appendfsync no:不进行fsync,将flush文件的时机交给OS决定,速度最快
  • appendfsync always:每写一条日志就进行一次fsync操作,数据安全性最高,速度最慢
  • appendfsync everysec:线程在后台每秒fsync一次,默认开启这个

为了解决AOF产生冗余数据,开启AOF rewrite功能

auto-aof-rewrite-min-size 10mb 
auto-aof-rewrite-percentage 100

配置说明:AOF文件达到10MB的100%的倍数时,即达到20MB时,会调用AOF rewrite功能,将文件进行压缩 。

2、RDB和AOF对比

RDB

优点:

  • 会产生一个完整的快照文件,数据可靠
  • RDB保存快照时会创建子进程,保存快照时基本不会影响主进程处理请求
  • 进行数据恢复时比AOF方式快

缺点:

  • RDB产生的快照并不是实时产生,而是根据配置文件中save的条件定期生成,可能会丢失数据。

AOF

优点

  • AOF下在配置文件中设置appendfsync为always时,任何已写入的数据都不会丢失,即使设置了appendfsync为everyse,最多也只会丢失1秒的数据

缺点

  • 文件比RDB大
  • 耗能比RDB高
  • 数据恢复比RDB慢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值