Redis进阶:Redis的持久化机制

Redis的持久化机制目前包括RBD和AOF两种方式。

RDB持久化

RDB持久化方式是在指定的时间间隔对数据进行快照存储。过期的键值不会被存储到快照中。如果恢复数据时数据已过期,会通过主动或被动清理策略进行删除。

  • 优点:性能影响小,恢复速度快。与AOF相比,在回复大数据量时,速度更快。
  • 缺点:save是阻塞式创建快照,如果数据大会影响其他命令的响应。强行关闭或者出现故障的情况下,会存在数据丢失的情况。
//创建子线程异步将快照写入磁盘
bgsave
//阻塞式存储快照,执行该命令时,不在响应其他指令
save // Redis.Config 可以对save配置进行调整。两个条件满足一个都会触发生成快照。
save 900 1 //900S内 至少1次写操作 触发 快照
save 300 10 //300S内 至少10次写操作 触发 快照
save 60 10000 //60S内 至少10000次写操作 触发 快照

AOF持久化

记录每次对服务器写的操作。服务器重启时会重新执行命令来恢复数据。AOF命令以redis协议追加保存每次写的操作到文件末尾。Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.

  • 优点:安全 容灾 备份文件易读可修改。

  • 缺点:备份文件占用空间大,恢复速度比RDB较慢。

  • 开启: redis.config中的appendonly属性值修改为yes,默认为no。

  • AOF策略调整

  //每次修改都写入AOF 绝对不丢失数据。最安全
appendfsync always
//每秒写入一次AOF 默认策略 在周期内同样存在丢失数据的情况。
appendfsync everysec
//关闭AOF持久化 性能最好
appendfsync no

如何选择持久化方式

  • 如果想要达到PostgreSQL的数据安全性,推荐两种方式同时使用。
  • 如果可以承受一定时间内(几分钟或者几秒),可以只使用RDB快照方式。
  • 很多用户只使用AOF方式,但是官方不推荐,因为定时生成快照方式便有数据管理,同时AOF在特定情况BRPOPLPUSH存在BUG的情况,因为RDB是从头开始创建,理论上更加健壮。

注意

Redis虽然提供了RDB快照及AOF两种持久化的方式,但这两种方式各有利弊:

  • RDB不能保证数据完全不丢失,会存在部分数据丢失的情况,具体丢失的数据有多少,具体取决于业务数据量大小及Redis配置文件中关于RDB的触发机制配置。
  • 使用AOF同样会存在在数据丢失的情况,具体是和appendfsync配置的周期有关,同时AOF会降低Redis的读写性能,而且无法支持较大的数据量。

以上就是Redis中持久化操作的相关介绍了,更多其他指令可以参考官网,Redis官网,谢谢阅读,希望对你有所帮助。

Redis进阶:Redis的持久化机制的更多相关文章

  1. Redis进阶:Redis的主从复制机制

    Redis进阶:Redis的主从复制机制 主从复制机制介绍 单机版的Redis存在性能瓶颈,Redis通过提高主从复制实现读写分离,提高了了Redis的可用性,另一方便也能实现数据在多个Redis直接 ...

  2. Redis系列之----Redis的两种持久化机制(RDB和AOF)

    Redis的两种持久化机制(RDB和AOF) 什么是持久化    Redis的数据是存储在内存中的,内存中的数据随着服务器的重启或者宕机便会不复存在,在生产环境,服务器宕机更是屡见不鲜,所以,我们希望 ...

  3. 《【面试突击】— Redis篇》-- Redis哨兵原理及持久化机制

    能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis哨兵原理及持久化机制 在这个系列里, ...

  4. Redis的两种持久化机制

    Redis的两种持久化机制 1.持久化机制 client--->redis(内存)--->内存数据-数据持久化--->磁盘 两种方法 快照(Snapshot) AOF(Append ...

  5. Redis进阶:Redis的哨兵模式搭建

    Redis进阶:Redis的哨兵模式搭建 哨兵机制介绍 单机版的Redis存在性能瓶颈,Redis通过提高主从复制实现读写分离,提高了了Redis的可用性,另一方便也能实现数据在多个Redis直接的备 ...

  6. Redis 文章一 之持久化机制的介绍

    我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的 企业级redis集群架构:海量数据.高并发.高可用 持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你re ...

  7. redis常用命令及持久化机制

    redis  常用命令 查找redis服务文件 find / -name  redis-server 查找配置文件 find / -name redis.conf 启动服务时候,要指定配置文件 启动r ...

  8. 详解Redis中两种持久化机制RDB和AOF(面试常问,工作常用)

    redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失.幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Ap ...

  9. 详解Redis中两种持久化机制RDB和AOF

    redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失.幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Ap ...

随机推荐

  1. 1125. Chain the Ropes (25)

    Given some segments of rope, you are supposed to chain them into one rope. Each time you may only fo ...

  2. git clone项目失败,Host key verification failed.

    在码云上创建了一个项目,配置好公钥后,克隆到我本地出现以下失败 百度了好久也没有找到解决办法,困扰了好久,后来还是百度到了, 原来是在提示 ey fingerprint is SHA256:FQGC9 ...

  3. 表格 td 设置宽度无效问题

    现在有个需求,就是表格的列不固定,都是动态加载的,想给每一列设置宽度,但是设置 width:100xp,没有效果,不过设置min-width:100px 就有效果了,table的宽度为 td的宽度和 ...

  4. 倍增O(1)求区间&值与|值

    ;i<=n;++i) f[i][]=a[i],g[i][]=a[i]; ;(<<j)<=n;++j) ;(i+(<<j)-)<=n;i++) { f[i][j ...

  5. 简记特定容器list和forward_list算法

    链表类型list和forward_list有独有的sort.merge.remove.reverse和unique,而通用版本的是不能用于这两个类型的,因为所要求的迭代器不同,通用版本需要迭代器支持更 ...

  6. [算法]Min_25筛

    前言 本篇文章中使用的字母\(p\),指\(\text{任意的} p \in \text{素数集合}\) 应用场景 若函数\(f(x)\)满足, \(f(x)\)是积性函数 \(f(p)\)可以使用多 ...

  7. 【PowerOJ1756&网络流24题】最长k可重区间集问题(费用流)

    题意: 思路: [问题分析] 最大权不相交路径问题,可以用最大费用最大流解决. [建模方法] 方法1 按左端点排序所有区间,把每个区间拆分看做两个顶点<i.a><i.b>,建立 ...

  8. 大数据笔记(二十一)——NoSQL数据库之Redis

    一.Redis内存数据库 一个key-value存储系统,支持存储的value包括string(字符串).list(链表).set(集合).zset(sorted set--有序集合)和hash(哈希 ...

  9. 常用的HTML标记整理

    文章CSDN地址:https://blog.csdn.net/Ght1997... 文章GitHub地址:https://github.com/ght1997012...文章segmentfault地 ...

  10. 解决ios和Android的差异

    第一个:input,button input标签在 android系统不带圆角,在ios系统上带圆角 解决办法: input,button{ -webkit-appearance:none; } 第二 ...