【Redis持久化机制】

2024-05-13 10:32
文章标签 redis 持久 化机制

本文主要是介绍【Redis持久化机制】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Redis持久化机制

众所周知,Redis是一个内存数据库。但它与其它内存数据库(如memcache)等有一个很大的区别,就是Redis可以持久化到磁盘。有了持久化方案,Redis就可以对数据进行备份、恢复、复制。Redis提供了两种持久化方案:RDB和AOF。在Redis 4.0中,提供了一个新特性:两者的混合持久化。下面将介绍Redis的各种持久化方案的原理和配置。

RDB

  原理:

RDB持久化是通过快照方式来完成的。当达到触发条件时,Redis会自动将内存中所有数据以二进制方式生成一份副本并存储在硬盘上。

在配置文件可以配置当前配置的备份文件和目录,使用config命令也可以查看和设置

触发条件

RDB分为主动触发和被动触发。

主动触发指的是客户端执行save和bgsave命令会进行持久化。
执行save会使Redis处于阻塞状态,不会响应任何其他客户端发来的请求,直到RDB快照文件执行完毕,需要谨慎使用。
bgsave即background save,后台保存。当执行bgsave命令时,Redis会fork出一个子进程来执行快照操作。需要注意的是,在fork子进程的过程中,Redis是阻塞的。而当子进程创建完成后,Redis就可以继续响应客户端的请求了。

 

 

子进程创建完成以后,返回“Background saving started”。子进程根据主进程的内存副本创建临时快照文件,当快照文件完成以后对原快照文件进行替换。替换完成后,子进程发送信号给主进程完成快照操作,主进程更新统计信息(info Persistence可查看),子进程退出。
被动触发有好几种情况,下面分别介绍一下。
save m n规则触发
在指定的m秒内,Redis中有n个键发生改变,则自动触发bgsave。该规则默认在redis.conf中进行了配置,并且可组合使用,满足其中一个规则,则触发bgsave
比如save 900 1,表明当900秒内至少有1个键发生改变时候,Redis会触发bgsave操作。
flushall触发
flushall命令用于清空数据库,请慎用,当我们使用了则表明我们需要对数据进行清空,那Redis当然需要对快照文件也进行清空,所以会触发bgsave。
shutdown触发
Redis在关闭前处于安全角度将所有数据全部保存下来,以便下次启动会恢复。可以使用客户端连入执行shutdown命令,也可以直接使用脚本关闭Redis,都会在退出前先执行save。
shutdown命令还可以传递一个参数save/nosave。如果使用nosave参数,则不会进行持久化,直接退出。
主从复制触发
在Redis主从复制中,从节点执行全量复制操作,主节点会执行bgsave命令,并将rdb文件发送给从节点。
更多免费技术资料可关注:annalin1203

这篇关于【Redis持久化机制】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985449

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模