为什么需要持久化存储?
原因:redis是存放在内存中的,断电会导致数据丢失
解决方法:把redis数据进行持久性存储,将其存储在磁盘中。
存储方式:
1.RDB
RDB中文名为快照/内存快照,Redis按照一定的时间周期将目前服务中的所有数据全部写入到磁盘中。
缺点:
如果备份时间周期是5分钟,但是在4分59秒时redis崩溃,会造成这段时间内的数据无法备份,从而丢失数据。
配置处理:
# 周期性执行条件的设置格式为
save <seconds> <changes>
# 默认的设置为:
save 900 1
save 300 10
save 60 10000
# 以下设置方式为关闭RDB快照功能
save ""
2.AOF
AOF全称是Append Only File,记录对redis操作的每次命令,将其记录到磁盘中。如果新建一个kes-val,然后delete,记录到
磁盘中,在文件读取写入到redis时,此kes-val不会存在,这样就造成了文件不必要的增加,所以需要 日志重写功能(讲kes-val从磁盘中去掉,从而节省空间)。
配置处理:
appendonly:默认情况下AOF功能是关闭的,将该选项改为yes以便打开Redis的AOF功能。
appendfsync设置三个值,分别是:
always 每次对redis的操作都会记录,效率最低
everysec 每秒对redis的操作记录到磁盘
no 大约每30秒对redis的操作记录到磁盘