Redis 持久化

2 篇文章 0 订阅

目录

              Redis 持久化

RDB简介(时间段,数据集,快照)

RDB保存策略

RDB的触发

RDB的优缺点:

AOF简介(实时的,空间大,存命令)

Redis 持久化
Redis主要是工作在内存中。内存本身就不是一个持久化设备,断电后数据会清空。所以Redis在工作过程中,如果发生了意外停电事故,如何尽可能减少数据丢失。

即,

由于Redis工作在内存中,现在将内存中的数据存储到硬盘中,这个过程就是持久化。(redis的特性是远程的,内存中,非关系型)

Redis提供了两种不同级别的持久化的方式:RDB方式和AOF方式;其中RDB方式,能够在指定的时间间隔内对数据进行快照存储;AOF(Append-only-file)持久化方式每次对服务器写的操作,当服务器重启的时候回执行这些命令来回复原始数据,AOF命令以redis 协议追加保存每次写的操作到文件末尾。

RDB简介(时间段,数据集,快照)
RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。工作机制:

每隔一段时间,就把内存中的数据保存到硬盘上的指定文件中。RDB是默认开启的!

Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中【xxx.rdb】,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。

RDB的缺点是最后一次持久化后的数据可能丢失。

RDB保存策略
save 900 1 900 秒内如果至少有 1 个 key 的值变化,则保存

save 300 10 300 秒内如果至少有 10 个 key 的值变化,则保存

save 60 10000 60 秒内如果至少有 10000 个 key 的值变化,则保存

save “” 就是禁用RDB模式;

查询如下:

[root@hadoop103 ~]# cd /usr/local/redis/
[root@hadoop103 redis]# cd bin
[root@hadoop103 bin]# ll
总用量 26400
-rw-r–r--. 1 root root 103 10月 22 18:40 dump.rdb
-rwxr-xr-x. 1 root root 5580327 10月 22 11:30 redis-benchmark
-rwxr-xr-x. 1 root root 22217 10月 22 11:30 redis-check-aof
-rwxr-xr-x. 1 root root 7829866 10月 22 11:30 redis-check-rdb
-rwxr-xr-x. 1 root root 5709195 10月 22 11:30 redis-cli
-rw-r–r--. 1 root root 46689 10月 22 16:02 redis.conf
lrwxrwxrwx. 1 root root 12 10月 22 11:30 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 7829866 10月 22 11:30 redis-server
[root@hadoop103 bin]# vim redis.conf

save “”

save 900 1
save 300 10
save 60 10000

By default Redis will stop accepting writes if RDB snapshots are enabled

这里在命令模式下,定位到202行使用

202 shift + g

顶行使用 gg

末行 shift + g

属性

含义

备注

save

保存策略

dbfilename

RDB快照文件名

dir

RDB快照保存的目录

必须是一个目录,不能是文件名。最好改为固定目录。默认为./代表执行redis-server命令时的当前目录!

stop-writes-on-bgsave-error

是否在备份出错时,继续接受写操作

如果用户开启了RDB快照功能,那么在redis持久化数据到磁盘时如果出现失败,默认情况下,redis会停止接受所有的写请求

rdbcompression

对于存储到磁盘中的快照,可以设置是否进行压缩存储。

如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,

可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。

rdbchecksum

是否进行数据校验

在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,

如果希望获取到最大的性能提升,可以关闭此功能。

 - # The filename where to dump the DB dbfilename dump.rdb  
   # The working directory.
   #
   # The DB will be written inside this directory, with the filename specified
   # above using the 'dbfilename' configuration directive.
   #
   # The Append Only File will also be created inside this directory.
   #
   # Note that you must specify a directory here, not a file name. dir ./

dir是快照保存的目录,快照保存了Redis写入的数据,该目录就保存在当前的目录下面,也就是和server服务端程序保存的目录是一致的。

 - # However if you have setup your proper monitoring of the Redis server    # and persistence, you may want to disable this feature so
   that Redis will    # continue to work as usual even if there are
   problems with disk,    # permissions, and so forth.
   stop-writes-on-bgsave-error yes

如果设置为yes ,这表明当redis在持久化数据到磁盘的时候,如果失败的话,那么redis将会拒绝所有对redis本身的写操作。

 - # RDB files created with checksum disabled have a checksum of zero that will
   # tell the loading code to skip the check. rdbchecksum yes

作者:isea_you
来源:CSDN
原文:https://blog.csdn.net/qq_31807385/article/details/83311998
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值