7.redis的持久化

什么是持久化?
持久化就是把内存中的数据写到磁盘中去,防止服务器宕机后内存数据的丢失,redis提供了两种持久化的方式:RDB(默认)和AOF。

简介

数据存放于:
内存:高效,断点(关机)内存数据会丢失
硬盘:读写速度慢与内存,断点数据不会丢失

redis持久化支持两种方式:RDB和AOF,RDB一定时间取存储文件,AOF默认每秒去存储历史命令。

RDB

rdb是redis DataBase的缩写
功能核心函数是dbsave(生成rdb文件)和rdbLoad(从文件加载到内存)两个函数
在这里插入图片描述

RDB:是redis默认的持久化机制,这种方式是将内存中的数据以快照的方式写到二进制文件中,默认的文件名为dump.rdb

优点:
快照保存数据极快,还原数据极快,适用于灾难备份
缺点:
小内存机器不适合使用rdb

AOF

由于快照方式是在一定时间间隔内做一次的,所以如果redis意外down掉的话,就会丢一最后一次亏按照后的所有修改,如果应用要求数据不能修改的话,就可以采用AOF的方式

Append-only file:aof比快照方式有更好的持久化性,是由于在使用redis的aof方式时,redis会将每一个收到的写命令通过write函数追加到appendonly.aof文件中,当redis重启时会通过重新执行新文件中保存的写命令来在内存中重建整个数据库的内容

产生的问题:
aof的方式也带来了一定的问题,持久化文件会变得越来越大,例如我们调用incr test命令100次,文件中鼻血保存全部的100条命令,其实有99条是多余的

原创文章 153 获赞 71 访问量 4万+

猜你喜欢

转载自blog.csdn.net/mzc_love/article/details/105855922