redis持久化方案的简单入门详解
ღ( ´・ᴗ・` )比心
首先解释一下什么是redis的持久化,大白话一点,就是把数据保存在磁盘上。所以说,redis把所有数据保存在内存中,按理来说当断电后,保存的数据就会消失,但是再次打开redis,数据还是存在的,所以这就说明,redis有它自己的持久化方案,过一段时间,或者满足什么条件,就会自动把数据保存在磁盘上,下次启动可以把保存下来的数据自动刷新到内存中。
(╹▽╹)
目前来说,它支持两种:
rdb:快照形式,定期把当前时刻内存中的数据保存到磁盘,redis默认支持。
aof:append only file。把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。数据库恢复时把所有的命令执行一遍即可。
----------------------------------------------------------------------O(∩_∩)O-----------------------------------------------------------------------
先说第一种方案:
打开redis.conf文件,找到这一段,这一段就是关乎持久化的核心配置代码
首先你可以翻译一下,上面写的都很直白,直接翻译就能看懂
最下面有三行配置,我来解释一下
900是900秒,也就是15分钟,1就代表一个key,意思是在15分钟内如果有一个key发生变化(set 或者get)的话,我就自动的把数据写在我的磁盘上,保存到一个dump.rdb的文件中,下图是指定放在那个文件中
最后效果图:
多出了一个dump.rdb文件<<<<<
----------------------------------------------------------------------O(∩_∩)O-----------------------------------------------------------------------
第二种方案:
aop就是当用户每次请求服务,也就是往redis中执行写入的操作的时候,在写入redis内存的同时也会执行一次保存到磁盘文件appendonly.aof中的操作(这个文件可以改名),用户每写入一次,就会把这个操作命令保存在appendonly.aof文件中,所以用户操作的先后顺序在appendonly.aof中也不会乱
简而言之,保存的就是用户的操作命令
配置也在redis.conf中配置,首先打开appendonly,下面的appenfilename是文件名
最后效果图:
----------------------------------------------------------------------O(∩_∩)O-----------------------------------------------------------------------
总结一下区别:
1.一般会把两种持久化都开启,多层保障嘛
2.rdb方式保存的是数据的结果,适合大数据量时的快照,缺点:容易丢数据,性能也不是太好
3.aof方式性能好,缺点是文件会很大
┏(^0^)┛