书面解释:即把数据存储于断电后不会丢失的设备中,通常是硬盘
通俗理解:重开机后,数据还在(类似于mysql,区别于memcached)

常见的持久化方式:
主从:通过从服务器保存和持久化,如mongoDB的replication sets配置
日志:操作生成相关日志,并通过日志来恢复数据
couchDB对于数据内容,不修改,只追加,则文件本身就是日志,不会丢失数据.

rdb的工作原理:
每隔N分钟或N次写操作后,
从内存dump数据形成rdb文件,
压缩
放在备份目录
注:红色部分可通过参数conf文件来配置

redis.conf文件 rdb快照相关参数说明
save 900 1 #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。
save 300 10 #必须是300秒之后至少10个关键字发生变化。
save 60 10000 #必须是60秒之后至少10000个关键字发生变化。
以上三个选项应该由下往上看,三个选项不启用, 就停止了导出rdb快照了!!!
stop-writes-on-bgsave-error yes #后台存储rdb错误时,停止内存中写入操作,避免出现数据不一致的情况发生
rdbcompression yes #使用LZF压缩rdb文件。
rdbchecksum yes #存储和加载rdb文件时校验。
dbfilename dump.rdb #设置rdb文件名。
dir ./ #设置工作目录,rdb文件会写入该目录。

附赠测试执行
./redis-benchmark -n 3000 执行3000个命令

rdb保存数据的缺陷

在2个保存点之间,断电,
将会丢失1-N分钟的数据

出于对持久化的更精细要求,redis增添了aof方式 append only file


甄城
1.2k 声望35 粉丝