当前位置: 首页 > news >正文

Redis的持久化

介绍之前,先说以下memcache,和redis的最大区别在于mem(内存)cache(缓存)不能落盘(持久化);而redis可以持久化。  

Redis的数据是保存在内存中的,将内存的Redis数据保存到磁盘,恢复或者重启的时候再从磁盘读到内存,这一过程就是Redis的持久化。其目的是防止宕机或突然断电数据丢失,Redis的持久化有两种:

  • 快照 RDB(redis database)(默认的
  • 日志 AOF(append only file)(可选的

 

1.快照 RDB

    字面意思,就是给数据拍个照,该方式是Redis的默认持久化方式。数据保存为dump.rdb,有三种触发机制:

(1)SAVE

     save会阻塞Redis的进程,一直到dump.rdb文件保存完。

(2)BGSAVE

    bgsave通过 fork 一个子进程,让其去创建 RDB 文件,因此为阻塞的。

(3)自动

    RDB速度快,自动这种方式有个缺陷,就是突然断电,从最后一次自动保存后的时间段的数据将会丢失。

2.日志 AOF

AOF(Append-only File)的实现方式是通过日志记录的方式存储,例如set某个值,Redis就会在日志文件写一条。

AOF 三种策略:

(1)always

     客户端是不会直接把命令写入 AOF 文件的,Liunx 系统会有一个缓冲机制,把一部分命令打包再同步到 AOF 文件,从而提高效率。

(2)everysec

    每一秒的缓冲区的数据都会刷新到硬盘当中,最多有1秒的数据丢失。

(3)no

    把控制权给了操作系统,得看操作系统什么时候刷新数据到磁盘。

为了数据重复,AOF还会重写,来减少冗余。例如:

有几个操作:

set mykey a
set mykey b
set mykey c

那么重写后就一条:

set mykey c

【参考】

1.https://www.cnblogs.com/zhoujinyi/archive/2013/05/26/3098508.html

2.https://redisbook.readthedocs.io/en/latest/internal/aof.html

3.一文明白redis持久化

相关文章:

  • Redis需要知道的几个问题
  • 分布式消息队列【笔记】
  • 设计模式之---【发布订阅模式】
  • 设计模式之---【工厂模式】
  • 理解Epoll
  • 虚拟机ubantu18.04与Windows7共享文件夹(samba)
  • win10 “你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。”
  • 安装lua报错:fatal error: readline/readline.h: No such file or directory
  • 【重学Linux系列(一)之一一Linux命令】
  • C盘突然满了,找了好几天。。。
  • ubantu18.04server配置IP
  • int与CString互转
  • error LNK2019: unresolved external symbol
  • 对话框在DLL中DoModal()返回-1?
  • Linux系统网络I/O模型
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Android Volley源码解析
  • canvas 高仿 Apple Watch 表盘
  • Java-详解HashMap
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Laravel Telescope:优雅的应用调试工具
  • mysql中InnoDB引擎中页的概念
  • PHP CLI应用的调试原理
  • PHP的Ev教程三(Periodic watcher)
  • ReactNative开发常用的三方模块
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • session共享问题解决方案
  • SpringBoot几种定时任务的实现方式
  • SQL 难点解决:记录的引用
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 力扣(LeetCode)56
  • 嵌入式文件系统
  • 优化 Vue 项目编译文件大小
  • #QT(串口助手-界面)
  • (k8s中)docker netty OOM问题记录
  • (分布式缓存)Redis持久化
  • (附源码)计算机毕业设计大学生兼职系统
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (未解决)macOS matplotlib 中文是方框
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转载)Linux网络编程入门
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .net wcf memory gates checking failed
  • .NET/C# 使窗口永不获得焦点
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET性能优化(文摘)
  • .NET序列化 serializable,反序列化
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [C++打怪升级]--学习总目录