Redis持久化方案RDB和AOF(理论)
admin
2023-05-21 08:02:36
0

redis和memcache的区别是什么?

    简单来说,如果没有持久化的redis,就和memcache一样了,相当于一个缓存数据库。


redis是如何解决数据持久化的?

    redis有两种持久化方案:RDB(Redis DataBases)和AOF(AppendOnly File)


RDB持久化(详细分析:https://blog.51cto.com/13690439/2118462)

    RDB是snapshot快照<二进制文件>存储,是默认的持久化方式。

    RDB会按照一定的策略,周期性的将数据保存到磁盘。(下个周期为到来时故障,会丢数据)

    借助fork命令的copy on write机制,在快照生成时,将当前进程fork出一个子进程,

    然后再子进程中循环所有数据,将数据写成RDB文件。


AOF持久化(详细分析:https://blog.51cto.com/13690439/2118465)

    AOF<二进制文件>比RDB方式有更好的持久性。

    redis会将每一个收到的写命令都通过write函数追加到文件最后,类似msyql的binlog。

    当redis重启时,会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。


简单来说:

    RDB:是按照策略周期性的进行持久化数据;

    AOF:是不断的去记录修改操作;


持久化方式的选择:

    RDB和AOF操作都是顺序IO操作,性能都很高。

    而同时在通过RDB文件或者AOF日志进行数据库恢复的时候,也是顺序的读取数据加载到内存中。

    所以也不会造成磁盘的随机读。


    通常,如果你要想提供很高的数据保障性,那么建议你同时使用两种持久化方式。

    如果你可以接受灾难带来的几分钟的数据丢失,那么你可以仅使用RDB。


在数据恢复方面:

    RDB的启动时间会更短,原因有两个:

        1、RDB文件中每一条数据只有一条记录,不会像AOF日志那样可能有一条数据的多次操作记录。

             所以每条数据只需要写一次就行了。

        2、RDB文件的存储格式和Redis数据在内存中的编码格式是一致的,不需要再进行数据编码工作,

             所以在CPU消耗上要远小于AOF日志的加载。 

市场常见架构:

      目前,通常的设计思路是利用Replication机制来弥补aof、snapshot性能上的不足,达到了数据可持久化。

      即Master上Snapshot和AOF都不做,来保证Master的读写性能,

      而Slave上则同时开启Snapshot和AOF来进行持久化,保证数据的安全性。


相关内容

热门资讯

不妨多给大学开放一些适应时间 澎湃特约评论员 胡栖安5月16日,武汉大学校园开放后的首个周末,不少游客前来参观。视觉中国 图刚刚过...
“娜塔莎”娃娃爆火 被批暴力擦... “娜塔莎”娃娃爆火 被批暴力擦边  【“娜塔莎”娃娃爆火 被批暴力擦边】一款名叫“娜塔莎”的解压玩具...
黄三、李四是谁?多部门回应拆迁... 澎湃新闻记者 陈绪厚拆迁公告中产权人的姓名为“黄三”、“李四”,广州市荔湾区政府国有土地上房屋征收办...
专注大模型的定制软件开发公司解... 专注大模型,定制开发如何避坑?这家公司提供了不一样的思路 当AI的浪潮席卷而来,几乎每一家企业都在思...
外交部回应特朗普涉台表态 新华社北京5月18日电(记者冯歆然、董雪)就美国总统特朗普涉台表态,外交部发言人郭嘉昆18日在例行记...
特朗普访华后高市早苗与其通话,... 澎湃新闻记者 杨文钦 朱郑勇5月18日,外交部发言人郭嘉昆主持例行记者会。迪拜中阿卫视记者提问,在特...
谷歌前CEO毕业典礼谈AI惹争... 来源:环球网 【环球网科技综合报道】5月18日消息,据据 NBC News 报道,前谷歌CEO埃里...
【图片故事】从“打工妹”到隐形... 来源:滚动播报 (来源:工人日报) 近日,在广东鼎泰高科技术股份有限公司总部实验室,王馨(右二)与研...
嘉义县长“在野大联盟”人选呼之... 海峡导报综合报道 年底嘉义县长选举开打,民进党民代蔡易余已积极备战,以国民党为首的在野势力打算以“在...
电视指示灯亮却打不开什么原因 上次关机时电视处于待机状态,所以打开电视电源开关后,电视仍然处于待机状态,屏幕没有显示,这时需要使用...