Redis学习-4-2 Redis持久化

Posted companion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:

 

以上是关于Redis学习-4-2 Redis持久化的主要内容,如果未能解决你的问题,请参考以下文章

Redis单机,主从集群,哨兵集群,分片集群的搭建

Redis单机,主从集群,哨兵集群,分片集群的搭建

redis学习redis持久化

Redis_07_Redis两种持久化方式

Redis_10_Redis两种持久化方式

redis学习系列——redis持久化