栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis的持久化方案

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis的持久化方案

Redis的持久化方案 RDB持久化方案

Redis会定期保存数据快照至一个rbd文件中,并在启动时自动加载rdb文件,恢复之前保存的数据。

可以在配置文件中配置Redis进行快照保存的时机:

save [seconds] [changes]  

意为在seconds秒内如果发生了changes次数据修改,则进行一次RDB快照保存,例如

save  60 100
save  600 500

Redis每60秒检查一次数据变更情况,如果发生了100次或以上的数据变更,则进行RDB快照保存。
SAVE 和 BGSAVE 两个命令都会调用 rdbSave 函数,但它们调用的方式各有不同:

  • SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。
  • BGSAVE 则 fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。 Redis 服务器在BGSAVE 执行期间仍然可以继续处理客户端的请求。
AOF持久化方案

采用AOF持久方式时,Redis会把每一个写请求都记录在一个日志文件里。在Redis重启时,会把AOF文件中记录的所有写操作顺序执行一遍,确保数据恢复到最新。
AOF默认是关闭的。如要开启,进行如下配置:

 appendonly  yes 
AOF rewrite功能:

随着AOF不断地记录写操作日志,因为所有的写操作都会记录,所以必定会出现一些无用的日志。大量无用的日志会让AOF文件过大,也会让数据恢复的时间过长。不过Redis提供了AOF rewrite功能,可以重写AOF文件,只保留能够把数据恢复到最新状态的最小写操作集。

日志的刷盘策略
  1. appendfsync no:不进行刷盘,将flush文件的时机交给系统决定,速度最快
  2. appendfsync always:每写入一条日志就进行一次刷盘操作,数据安全性最高,但速度最慢
  3. appendfsync everysec:折中的做法,交由后台线程每秒刷盘一次
AOF rewrite配置
auto-aof-rewrite-percentage 100  AOF文件每增加一倍后,重写
auto-aof-rewrite-min-size 64mb	 AOF文件初始大小
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/993017.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号