首页 > 数据库 >redis为何持久化及持久化策略

redis为何持久化及持久化策略

时间:2023-02-13 16:22:37浏览次数:61  
标签:AOF 同步 持久 Redis 化及 redis RDB 数据

一、Redis是什么?为什么需要持久化?

1.Redis是什么?

Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

  1. Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  2. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  3. Redis支持数据的备份,即master-slave模式的数据备份。

2.为什么需要持久化?

Redis为了保证效率,数据缓存在了内存中,但是会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中,以保证数据的持久化。

二、Redis的持久化策略

1.全量同步(RDB)

全量同步:

快照形式是直接把内存中的数据保存到一个dump的文件中,定时保存,保存策略。

当Redis需要做持久化时,Redis会fork一个子进程,子进程将数据写到磁盘上一个临时RDB文件中。当子进程完成写临时文件后,将原来的RDB替换掉。

2.增量同步(AOF)。

增量同步:

把所有的对Redis的服务器进行修改的命令都存到一个文件里,命令的集合。

使用AOF做持久化,每一个写命令都通过write函数追加到appendonly.aof中。
aof的默认策略是每秒钟fsync一次,在这种配置下,就算发生故障停机,也最多丢失一秒钟的数据。


总结

AOF的缺点是对于相同的数据集来说,AOF的文件体积通常要大于RDB文件的体积。根据所使用的fsync策略,AOF的速度可能会慢于RDB。

Redis 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

ps:Redis默认是快照RDB的持久化方式。对于主从同步来说,主从刚刚连接的时候,进行全量同步(RDB),全同步结束后,进行增量同步(AOF)。

标签:AOF,同步,持久,Redis,化及,redis,RDB,数据
From: https://www.cnblogs.com/ruiy/p/17116797.html

相关文章

  • 【Spring-boot-route(十一)数据库配置信息加密+(十二)整合redis做为缓存】
    spring-boot-route(十一)数据库配置信息加密前言:SpringBoot最大的特点就是自动配置了,大大的减少了传统Spring框架的繁琐配置,通过几行简单的配置就可以完成其他组件的接入。比......
  • docker安装redis:6.0.8(挂载外部redis.conf启动)
    docker安装redis:6.0.8​​1、从dockerhub上(阿里云加速器)拉取redis镜像到本地​​​​2、在centos宿主机文件模板拷贝进/zzyyuse/redis目录下​​​​3、修改/zzyyuse/re......
  • redis命令操作list和set&sortedset以及通用命令
    列表类型list:可以添加一个元素到列表的头部(左边)或者尾部(右边) 1.添加: 1.lpushkeyvalue:将元素加入列表左表 2.rpushkeyvalue:将元素加入列表右边 ......
  • Redis常用数据类型
    1.通用命令-KEYS:查看符合模板的所有key,`不建议在生产环境设备上使用`-DEL:删除一个指定的key-EXISTS:判断key是否存在-EXPIRE:给一个key设置有效期,有效期到期时该ke......
  • Redis主从模式的优缺点
    优点:一个Master可以同步多个SlavesSlave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。因此我们可以将Redis的Replication架构视为图结......
  • Redis数据持久化、数据备份、数据的故障恢复
    1.redis持久化的意义----redis故障恢复在实际的生产环境中,很可能会遇到redis突然挂掉的情况,比如redis的进程死掉了、电缆被施工队挖了(支付宝例子)等等,总之一定会遇到各......
  • MQ的定时任务改装,实现自定义定时:MQ+redis
    packagecom.*.server.live.listener;importcom.*.common.core.entity.constant.LiveConstant;importcom.*.common.redis.service.RedisService;importcom.*.serve......
  • redis数据结构介绍和redis命令操作string&hash
    redis的数据结构:*redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构*value的数据结构:(1)字符串类型string(2......
  • Redis五种数据类型及使用场景
    Redis有5种基础数据结构,分别为:string(字符串)、list(列表)、set(集合)、hash(哈希)和zset(有序集合)。Redis所有的数据结构都是一个key对应一个value,不同类型......
  • 聊聊Redis
    Redis为什么会这么快?基于内存单线程减少上下文切换,减少锁竞争,同时保证原子性IO多路复用高级数据结构支持快速查询(如SDS、Hash以及跳表等)为什么Redis采用单线程模......