一、定义:
持久化:将内存中的数据同步到硬盘,redis重启之后数据能恢复
二、两种方法
第一种:RDB:快照方式》。符合一定条件时,自动将内存所有数据生成一份快照并存在硬盘上。
条件有四个:1)根据配置规则进行自动快照;2)用户执行Save和BGsave命令。3)执行flushall命令;4)执行复制(replication)时。
第二种:AOF:每次执行命令后将命令本身记录下来。
使用场景:一般两者一起使用。
三、RDB四种条件介绍
条件一:根据配置规则进行自动快照。
安装目录中包含的样例中有三个条件:
save 900 1 #在900秒内有1个1个以上的键被更改则进行快照。
save 300 10
save 60 1000
条件二:Save和BGsave命令
执行Save命令时,会阻塞所有来自客户端的请求。数据较多的时候会导致redis长时间不响应。
BGsave,是后台异步操作,可以响应请求。
注:lastsave可以查询快照是否执行完成。
条件三、flushall
会清空数据库所有数据。只有自动快照条件不为空,都会进行一次快照操作。
条件四:执行复制时
当设置主从模式时。redis在复制初始化时进行自动快照。即使没有定义自动快照条件,并且没有手动执行过快照操作,也会生成RDB快照条件。
四、快照原理
默认快照文件存储在Redis当前进程的工作目录中的dump.rdb文件中。快照过程:
五 AOF 方式
默认Redis 没有开启这个方式。可以通过appendonly yes启用。
开启后每执行一条会更爱redis中的数据的命令,Redis会将该命令写入硬盘的AOF文件中。
在window下设置aof方法
1 复制redis.windows-service.conf为redis.conf。
2 修改redis.conf中的配置appendonly no为appendonly yes。
3 重启redis服务。关闭命令:在redis-cli.exe中输入shutdown关闭,启动命令:
redis-server.exe --service-start 。启动后在redis按照的跟目录下能看到appendonly.aof文件。
4 在redis中调用set命令。
在appendonly.aof中对应如下设置