redis与memcache的区别

本文探讨了Redis与Memcache的主要区别,包括数据存储位置、数据类型、架构层次和存储大小。Redis支持内存和磁盘持久化,提供丰富的数据结构,主从复制以及多种持久化策略,而Memcache仅存储字符串,不支持数据持久化,但在分布式场景中有优势。Redis的高性能和丰富特性使其在许多业务场景中更受欢迎,但其缺点如数据一致性、扩容复杂性及单核限制也需要考虑。

 这里我主要谈谈memcache和redis的区别。

①从数据存储位置上来分,memcache的数据存在内存中,而redis既可以存储在内存中,也可以存储的到磁盘中,达到持久化存储的功能,memcache一旦断电,数据全部丢失,redis可以利用快照和AOF把数据存到磁盘中,当恢复时又从磁盘中读取到内存中,当物理内存使用完毕后,可以把数据写入到磁盘中。

 ②从存储数据的类型上来分,memcache和redis存储的方式都是键值对,只不过redis值的类型比较丰富,有string(字符串),hash(哈希),list(列表),set(集合)zset(有序集合),而memcache主要存储的是字符串。

 ③从架构层次来分,Redis支持master-slave(主—从)模式应用,memcache支持分布式。

 ④另外从存储数据的大小上来分,Redis单个value的最大限制是1GB,memcached只1能保存1MB的数据。但是Memcache在存储100K以上的数据,性能稍微好一点。

  ⑤另外redis只支持单核,memcache可以支持多核,当然关于redis取代memcache的说法,在一般情况下,两者性能都很高,在大多的业务场景选择上,redis的选择可能更加具有优势,但也不能说可以完全取代,最终还是取决于你的应用场景。

redis中

优点:

1读写性能优异

2支持数据持久化,支持AOF和RDB两种持久化方式

3支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。

4.丰富的特性 pub/sub,key过期策略,事务,支持多个DB等。

5数据结构丰富:除了支持string类型的value外还支持string、hash、set、sortedset、list等数据结构。 

缺点:

1Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。

2主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。

3Redis的主从复制采用全量复制,复制过程中主机会fork出一个子进程对内存做一份快照,并将子进程的内存快照保存为文件发送给从机,这一过程需要确保主机有足够多的空余内存。若快照文件较大,对集群的服务能力会产生较大的影响,而且复制过程是在从机新加入集群或者从机和主机网络断开重连时都会进行,也就是网络波动都会造成主机和从机间的一次全量的数据复制,这对实际的系统运营造成了不小的麻烦。

4Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。


memache

优点

一.部分容灾

假设只用一台memcache,如果这台memcache服务器挂掉了,那么请求将不断的冲击数据库,这样有可能搞死数据库,从而引发”雪崩“。如果使用多台memcache服务器,由于memcache使用一致性哈希算法,万一其中一台挂掉了,部分请求还是可以在memcache中命中,为修复系统赢得一些时间。

二.容量问题

一台memcache服务器的容量毕竟有限,可以使用多台memcache服务器,增加缓存容量。

三.均衡请求

使用多台memcache服务器,可以均衡请求,避免所有请求都冲进一台memcache服务器,导致服务器挂掉。

四.利用memcache分布式特性

使用一台memcache服务器,并没有利用memcache的数据分布式特性。

缺点

   1.不能持久化存储
   2.存储数据有限制:1M 【大于1M,认为就行分割】(内存碎片)
   3.mm存储数据只能key-value
   4.集群数据没有复制和同步机制 【崩溃不会影响程序,会从数据库中取数据】
   5.内存回收不能及时  LRU(算法):未使用内存》过期内存》最近最少使用内存   这是惰性删除


以上内容些许转自 msdnWoo 望见谅。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值