Redis学习-4-2 Redis持久化

1.持久化:

数据保存到一个不会丢失的地方就是持久化,可认为是永久存储的;

2.Redis持久化:

Redis的数据存储在内存中,是不安全的,所以Redis有自己的持久化方案,将内存数据定期保存到磁盘文件中,当Redis崩溃了或者计算机意外关机了,重启Redis服务的时候,将磁盘中文件恢复到内存中来;

3.Redis持久化方案:

1.RDB:

Redis Data Base,就是在指定的时间间隔内将内存中的数据集快照写入磁盘,数据恢复时将快照文件直接再读到内存。

RDB保存了在某个时间点的数据集(全部数据),存储在一个二进制文件中,只有一个文件,默认是dump.rdb。RDB默认是开启的,默认保存到启动redis的文件中。

二进制文件的读写特别高,redis.conf文件中配置即可,

保存策略的修改 save 900 1:900秒内有1个key被改动,可以配置多个策略,同时起作用,任意一条进行内存数据就写到文件中

dbfilename:设置RDB的文件名,默认是dump.rdb

dir:指定RDB文件的存储位置,默认是./ 就是当前目录,在哪里启动,哪里就是当前目录

配置步骤:

在redis的cli窗口中执行shutdown将redis停掉

在linux系统窗口中删除dump.rdb文件: rm dump.rdb -f

ll dump.rdb 文件已被删除

cd到redis.conf

vim redis.conf

搜索snap  可以看到默认配置的三个策略,任意一个满足就都执行

关闭RDB的方式:  将save ""注释去掉,将save三种策略注释,就关闭了

当然可以自己设置快照策略:

save 20 3;20秒内有3个数据做改动就保存

dbfilename dump.rdb

dir ./

剩下两个参数不改动

./redis-server  ../redis.conf

ll dump.rdb

ping  =>PONG

set k1 v1

set k2 v2

set k3 v3

满足了20秒内有3个数据做改动了就开始save执行RDB了

ll dump.rdb就有这个文件了

存在的问题:save <seconds> <changes>时间和修改的数目

save 300 10,300秒内只改变了9个key的时候redis就崩溃了,那这9个数据就丢失了,没保存上

所以如果对数据保存要求不高且希望保存性能高,可以使用RDB的方式

 适合做备份,条件满足就会将数据写道二进制文件中,速度快,但是有可能会造成数据丢失,默认是开启的;

2.AOF:

Append-only file:每次将redis中数据修改的命令都记录到AOF文件中,不记录读取,只记录修改,每一个数据修改命令记录到文件中,redis重启的时候读取文件,将命令都执行一遍;

文本文件记录的写入命令,默认是没有开启的,在redis.conf文件中开启AOF,将redis.conf文件中的appendonly修改为yes就开启了

 appendfilename appendonly.aof

dir:默认是./

appendfsync:配置向aof文件写命令数据的策略: 有以下参数来做:

(1)no :不主动进行同步操作,而是完全交由操作系统来做(即每30秒一次),比较快但不是很安全,会有数据丢失;

(2)always:每次执行写入都会执行同步,慢一些但是比较安全

(3)everysec:每秒执行一次同步操作,比较平衡,介于速度和安全之间,这个是默认项;

停掉redis,修改配置文件redis.conf,aof文件中可以编辑,可以修改内存崩溃的数据将其删除

aof文件越来越大,数据恢复的时候会越来越慢,但是redis有个redis的机制:

set age 10 ,set age 20 ,set age 30,aof文件重写的时候set age 30成功了,将set age 10和set age 20 删除掉,缩小aof的尺寸,开始执行重写就是auto-aof-rewrite-min-size: 默认64mb,允许重写的最小aof文件大小,当aof文件大于64m的时候就开始整理aof文件,去掉无用的操作命令,缩小aof文件;

如果对数据丢失要求高数据很重要,速度要求不是很快的话可以使用aof,

aof和rdb可以同时存在同时起作用,首先读取aof文件,对数据保存比rdb更完整的

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AOF:

 

posted on   companion  阅读(108)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示