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

Redis持久化,RDB跟AOF

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

Redis持久化,RDB跟AOF

前言

Redis是一种内存型非关系型数据库,如果断电或者宕机等故障出现,redis存在内存中的数据就会丢失,相应的Redis给出了两种持久化方案,还有一种是RDB跟AOF的结合;

1. RDB(Redis DataBase)

RDB是将某一时刻的数据集快照从内存写入磁盘当中,实际操作过程是fork一个子进程将数据集写入一个临时文件,写入成功之后再替换掉之前的旧文件,以二进制压缩存储;

优点:

  • 整个Redis只包含一个dump.rdb文件,方便持久化;
  • 容灾性好,方便备份;
  • 高性能,通过fork一个单独的子进程来进行持久化,而主进程则不会进行任何的IO操作;
  • 数据集很大的时候,启动效率要优于AOF;

缺点:

  • 数据安全性低,因为RDB是间隔一段时间进行持久化的;
  • 如果数据量比较大可能会导致整个redis停止服务几百毫秒甚至一秒钟;
2. AOF(Append Only File)

AOF是将Redis的操作日志以追加的方式写入文件;

优点:

  • 数据安全,提供了三种同步策略:
    1.每秒同步:宕机等情况会丢失1秒内的数据;
    2.每修改同步:不会丢失数据;
    3.不同步:由操作系统决定,丢失的数据也是不确定的;
  • 通过append模式写文件,即使宕机了也不会丢失文件及数据,可以通过redis-check-aof 工具解决数据一致性的问题;
  • AOF的rewrite模式定期对AOF文件重写达到压缩(相同的命令合并)的目的;

缺点:

  • AOF的文件比RDB的文件大;
  • 数据集大的时候效率低于RDB;

RDB/AOF小结:

AOF的文件比RDB要大,并且比RDB安全,但是性能却低于RDB,AOF的更新频率比RDB高,如果在redis中同时配置了RDB跟AOF,服务会优先采用AOF进行持久化;

3.Redis过期键的删除策略

Redis中默认的过期策略:惰性删除跟定期删除;

  1. 惰性删除:操作某个数据的时候才回去判断数据是否过期,过期则删除,以空间换时间;
  2. 定期删除:每隔一段时间扫描redis server中expires字典,过期则删除;
  3. 定时删除:使用定时器设置key的过期时间,到点从dict中删除,以时间换空间;

Redis中有两个Dict对象:
dict:存放的是实际的数据;
expires:存放的是key和过期时间;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846188.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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