谈到深度对比MemcacheD 和 Redis,作为老牌程序员首先想到的便是Memcache好一点,终究更节约内存。还能够存图片视频之类的,大部分市面上的cache都是MemcacheD。

可是评价一款cache并不能只看这一方面不是~

数据存储的安全系数

要知道,memcacheD的数据库是存储在内存上,十分简单丢掉。

可是redis不一样,随着数据的增多,它会将一部分的数据转移到磁盘上,仅仅存储key,不进行过多占用内存的操作。

这样直接带来的优点便是,当突然灭掉电源时,redis的数据相比之下愈加不简单丢掉。

线程问题

首先我们要分清楚进程和线程的措辞,听起来如同一节语文课~

进程便是一个软件的执行, 可是线程是一个有专有栈指针、程序计数器的执行流。

差异便是,线程能够是多个线程执行同一个函数,可是进程就像一条线没有退路也没有分叉。

而这儿的memcacheD是一款多线程的数据库,可是redis是单线程的。

看起来memcacheD如同比redis高级了许多,可是这种高效率和快节奏也会带来一些想不到的bug,十分令人头大。

终究,你想要一会儿完成更多的骚操作,需求的技能也就愈加杂乱,也愈加简单玩脱线。

而且memcache能够将一个进程(一个软件的执行时)拆分成多个线程(许多条路一起处理),是一个很好的方式能够处理高并发问题。可是也带来了许多费事,比方响应时间会很慢。

对CPU的占用来说,memcache就像一个不孝子,需求老父亲的监督和监视。

分布式存储

memcacheD自身或许并不是个分布式的程序,可是用过一些计算机的算法,比方一致性哈希这种,能够完成咱们的这个分布式存储。

这就带来了一个问题,由于一致性哈希是使用在客户端的,而redis在这一点上是在服务器这一端口完成分布式结构的存储功能的。

经过crc16( key ) % HASH_SLOTS_NUMBER,Redis Cluster将整个key的数值域分成4096个哈希槽,每一个节点能够存储多个哈希槽,经过这样的结构来完成分布式存储。

终究孰优孰劣,想必大家心中已经有了一个高下立见的判别。

而说起来,学会了分布式存储,能够说你已经从一个入门级程序员进入到了一个资深程序员的考虑领域。

能够测验接一些外包进行技能输出,在我这儿就不详细展开说明晰。

还有什么想看的技能知识,欢迎谈论区留言点赞,我们下期见~