redis和memcache的区别是什么?
成都创新互联公司 - 珉田数据中心,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,珉田数据中心,西南服务器托管,四川/成都大带宽,机柜大带宽、租用·托管,四川老牌IDC服务商简单来说,如果没有持久化的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来进行持久化,保证数据的安全性。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。