051. Redis 持久化机制

Stella981
• 阅读 402

1. 持久化介绍


  • Redis 的数据存在在内存中,如果没有配置持久化,redis 重启后数据就全丢失了,于是需要开启 redis 的持久化功能,将数据保存到磁盘上,当 redis 重启后,可以从磁盘中恢复数据。

051. Redis 持久化机制

2. 持久化的方式


  • RDB 持久化:RDB 持久化能够在指定的时间间隔对你的数据进行快照存储。
  • AOF(append only file)持久化:AOF 持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。

3. RDB 持久化方式


1. 操作方式

  • 客户端直接通过命令 BGSAVE 或者 SAVE 来创建一个内存快照。

    • BGSAVE 调用 fork 来创建一个子线程,子线程负责将快照写入磁盘,而父进程仍然继续处理命令。
    • SAVE 执行 SAVE 命令过程中,不再响应其他命令。
  • 在 redis.conf 中调整 save 配置选项,当在规定的时间内,Redis 发生了写操作的个数满足条件,会触发 BGSAVE 命令。

    # 900 秒之内至少一次写操作
    save 900 1
    # 300 秒之内至少发生 10 次写操作
    save 300 10
    # 60 秒之内至少发生 10000 次写操作
    save 60 10000
    
  • save 5 2:每 5 秒检查一次,只要在连续的检查中出现2次操作,就可以发出。比如 1 秒的时候,做了一次写操作,第 10 秒的时候又进行了一次写操作,是可以出发 BGSAVE 命令的。

2. 优点和缺点

优点

缺点

对性能影响最小。

同步时丢失数据。

RDB 文件进行数据恢复比使用 AOF 要快很多。

如果数据集非常大且 CPU 不够强(比如单核 CPU),Redis 在 fork 子进程时可能会消耗相对较长的时间,影响 Redis 对外提供服务的能力。

4. AOF 持久化方式


1. 开启 AOF 持久化

appendonly yes
  • 相关的修改还有 appendfilenameappendfsync

2. AOF 策略调整

  • 每次有数据修改发生时都会写入 AOF 文件 appendfsync always
  • 每秒钟同步一次,该策略为 AOF 的缺省策略 appendfsync everysec
  • 从不同步。高效但是数据不会被持久化 appendfsync no

3. 优点和缺点

优点

缺点

最安全。

文件体积大。

容灾。

性能消耗比 RDB 高

易读,可修改。

数据恢复速度比 RDB 慢。

点赞
收藏
评论区
推荐文章
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
Peter20 Peter20
1年前
Redis ==> 集群的三种模式
一、主从同步/复制  通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。  为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器出
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Wesley13 Wesley13
1年前
qhfl
Redis  Redis是完全开源免费的,遵守BSD协议,是一个高性能的keyvalue数据库。  Redis有以下特点:    Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。    Redis支持五种数据类型。    Redis支持数据库备份。  Redi
Stella981 Stella981
1年前
Redis持久化的几种方式——深入解析RDB
Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便Redis重启时能够从磁盘中恢复原有的数据,而整个过程就叫做Redis持久化。!image.png(https://oscimg.oschina.net/oscnet/232e657dae2
Stella981 Stella981
1年前
Redis五种数据类型及应用场景
1、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。2、Redis支持数据的备份,即masterslave模式的数据备份。3、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。① string 是redis
Stella981 Stella981
1年前
Redis 持久化(10)
持久化机制Redis速度快,很大一部分原因是因为它所有的数据都存储在内存中。如果断电或者宕机,都会导致内存中的数据丢失。为了实现重启后数据不丢失,Redis提供了两种持久化的方案,一种是RDB快照(RedisDataBase),一种是AOF(AppendOnlyFile)。RDBRDB是Redis默认的持久化方案。当满足一定条
helloworld_28799839 helloworld_28799839
5个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue
子非鱼 子非鱼
9个月前
Redis高级
第一章Redis的持久化由于redis是一个内存数据库,所有的数据都是保存在内存当中的,内存当中的数据极易丢失,所以redis的数据持久化就显得尤为重要,在redis当中,提供了两种数据持久化的方式,分别为RDB以及AOF,且Redis默认开启的数据持久化方式为RDB方式。1、RDB持久化方案Redis会定期保存数据快照至一个rbd文件中,并在启动时自动