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来进行持久化,保证数据的安全性。


相关内容

热门资讯

小米澎程72小时一线预售快报出... 来源:CNMO科技 【CNMO科技消息】8月3日,CNMO科技注意到,车fans创始人@孙少军发布了...
海评面:“中国商业航天正以惊人... 7月22日,引力一号遥四运载火箭在上海东部海域点火升空。(图/新华社) “中国商业航天领域正以惊人的...
第三届雷达学术前沿大会在长沙举... 中新网长沙8月2日电(王曼)8月2日,第三届雷达学术前沿大会在长沙启幕,雷达及相关领域8位院士,12...
埃及、卡塔尔和土耳其发表联合声... △加沙地带(资料图)当地时间3日,埃及、卡塔尔和土耳其三国发表联合声明,强烈谴责以色列在加沙地带持续...
鹤壁市汽车电子电气行业技术宣讲... 为助推我市汽车电子电器产业智能化、数字化和绿色化转型升级。7月30日,由市工商联、市汽车电子电器商会...
原创 i... 新一代系统陆续推出,多方面进行升级,尤其是UI设计、AI智能体、流畅度等方面,助力新一代旗舰机全面发...
国产最强AI再次选择开源!阿里... IT之家 8 月 3 日消息,阿里巴巴千问 Qwen3.8-Max 人工智能模型今日(8 月 3 日...
特朗普:在伊朗战争期间,石油公... 美国有线电视新闻网(CNN)8月3日报道,特朗普周一表示,由于与伊朗战争相关的油价飙升,雪佛龙和埃克...
特朗普:与伊朗的谈判将分两阶段... △当地时间8月3日,美国总统特朗普在白宫回答记者提问。当地时间8月3日,美国总统特朗普在白宫回答记者...
汇艺银河里首届微醺节圆满收官 ... 多元业态协同联动,探索郑东商圈夜间消费新场景首届汇艺银河里微醺节圆满收官。活动立足郑州高铁东站商圈核...