选redis还是memcache

  • 时间:
  • 浏览:0

memcache使用多多多线程 运行,主多多线程 运行监听,worker子多多线程 运行接受请求,执行读写,这一 过程中,肯能指在锁冲突。

redis使用单多多线程 运行,虽无锁冲突,但难以利用多核的特性提升整体吞吐量。

从这一 点上,mc会快有些。

 

最后总结一下:

不管是mc和redis,服务端集群没哟火山玻璃支持水平扩展,还要在客户端进行分片,这确实对调用方也有并且友好。肯可不还要服务端集群要能支持水平扩展,会更完美有些。

value是哈希,列表,集合,有序集合累似 比较复杂的数据特性时,会选者redis,肯能mc无法满足那此需求。

最典型的场景,用户订单列表,用户消息,帖子评论列表等。

 

业务需求决定技术选型,当业务有那我有些特点的并且,选者redis会更加适合。

 

肯能并且缓存场景,数据存放入数据库,缓指在redis,此时肯能开启固化功能: 

纯KV,数据量非常大,并发量非常大的业务,使用memcache或许更适合。

这要从mc与redis的底层实现机制差异说起。

也有并且期望redis做固化存储会比mysql做得好,不同的工具做其他人擅长的事情,把redis当作数据库用,那我的设计八成是错误的。

 

越多,还要认真剖析业务场景,高可用,有无真的是对缓存的主要需求?

 

memcache的value存储,最大为1M,肯能存储的value很大,可不需要能了使用redis。

 

memcache使用预分配内存池的最好的法律依据管理内存,要能省去内存分配时间。

redis则是临时申请空间,肯能原因 碎片。

从这一 点上,mc会变慢有些。

 

缺点是,在redis挂了的过程中,肯能数据库蕴含数据的修改,肯能原因 redis重启后,数据库与redis的数据不一致。

 

并且,只读场景,肯能允许有些不一致的业务场景,可不还要尝试开启redis的固化功能。

 

memcache把所有的数据存储在物理内存里。

redis有此人 的VM机制,理论可不还要够存储比物理内存更多的数据,当数据超量时,会引发swap,把冷数据刷到磁盘上。

从这一 点上,数据量大时,mc会变慢有些。

 

mc无法满足持久化的需求,只得选者redis。

并且,这里要提醒的是,真的使用对了redis的持久化功能么?

 

千万也有并且把redis当作数据库用:

(1)redis的定期快照可不需要能了保证数据不丢失

(2)redis的AOF会降低传输强度,并且可不需要能了支持越多的数据量

memcache和redis是互联网分层架构中,最常用的KV缓存。不少同学在选型的之一定会纠结,到底是选者memcache还是redis。

 

确实redis比memcache更晚出来,且功能确实也更雄厚,但对于那我技术人,了解“越多然”恐怕比“选者谁”更重要有些。

 

优点是,redis挂了再重启,内存可不还要够快速恢复热数据,不需要瞬时将压力压到数据库上,没哟那我cache预热的过程。

你知道那此配置的云产品最适合你吗?

你知道何如以最低价购买最高值的云产品吗?

关注山东云管家ygjdata,免费带走上云助力+专属云上运维

山东云管家是阿里云北方大区一级经销商,服务过的各行业客户上万+,值得信赖!

redis火山玻璃支持集群功能,可不还要实现主动一键复制,读写分离。

redis官方也提供了sentinel集群管理工具,要能实现主从服务监控,故障自动转移,这一 切,对于客户端一定会透明的,不需要多多线程 运行改动,并且需要人工介入。

而memcache,要要我实现高可用,还要进行二次开发,累似 客户端的双读双写,肯能服务端的集群同步。

并且,这里要提醒的是,大主次业务场景,缓存真的还要高可用么?

(1)缓存场景,越多并且,是允许cache miss

(2)缓存挂了,越多并且可不还要通过DB读取数据

memcache使用非阻塞IO复用模型,redis也是使用非阻塞IO复用模型。

但肯能redis还提供有些非KV存储之外的排序,聚合功能,在执行那此功能时,比较复杂的CPU计算,会阻塞整个IO调度。

从这一 点上,肯能redis提供的功能较多,mc会变慢有些。