Redis 默认将数据保存在内存中,这也是缓存服务器的核心工作机制 但是内存一旦出现故障,那么数据将会完全消失,所以redis也提供了数据持久化的操作,在下一次启动redis的时候仍然会加载上一次的数据,目前redis提供了RDB和AOF两种主要的持久化方案。
- RDB持久化方式可以在指定时间间隔内队数据进行快照储存,这也是redis默认的持久化策略;
- AOF持久化方式记录每次对服务器写的操作,当服务器启动的时候会重新执行这些命令来恢复原始的数据,AOF命令以及Redis协议追加保存每次的写操作到文件末尾,用于用户执行的命令可能存在重复,所以可以直接修改AOF文件删除一些重复命令。
- 同时开启两种持久化方式,在这种情况下,当redis重启的时候就会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整。
- 不使用任何持久化方式,在配置文件中将其完全关闭可以更多地提升电脑性能,但是针对一些重要数据不建议禁用持久化。
- 要配置redis的持久化策略只需要编辑redis目录下的redis.windows.conf文件修改对应的配置信息并重启服务器。
下面对两种持久化的方式进行具体的演示
RDB快照储存方式
首先我们来看一下具体的配置文件对RDB快照储存方式是怎么设置的:
打开redis目录,找到配置文件 – redis.windows.conf
然后启动redis服务,并输入几条命令
我们返回redis的文件夹下 可以看到多了一个dump.rdb的文件,我们可以打开看看里面的内容
打开后的内容如下
这样是不建议去修改里面的内容的,因为它是以二进制的形式进行储存内容的,这个快照储存方式不方便进行修改。
AOF储存
同样的 第一步是先找到配置文件关于AOF配置所写的位置:
这样子就把AOF持久缓存打开了,稍微往下翻找一下,可以找到
然后我们随便输入几条命令后
好的 按照惯例我们将它打开看看
我们不难发现,aof文件是以文本的形式进行储存的,诶,这下太棒了,我们可以通过操控这个文本文件来对redis数据库要恢复的样式进行控制了,我们就可以通过修改命令或者修改参数来对应的得到恢复后的数据库了,这个方法来进行持久化很棒哦,可以进行维护。
最后的总结
其实AOF 和 RDB 方法都各有优劣,RDB的方法储存快照就不会频繁的进行读写操作,使得redis的可用性更强,而AOF能够还原最完整的redis数据库的内容,如果在性能允许的情况下,可以将这两个持久化的方法都用上,还是非常不错的!