目录
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
版权声明:本文为博主原创文章,转载请附上博文链接!