当前位置:   article > 正文

Redis与memcached的区别_memcached redis 区别

memcached redis 区别

说到缓存,现阶段很自然就会想到Redis和memcached。那么,二者有何区别呢?

一、异同

1、二者都是采用KV键值对形式进行数据存储。但Redis支持的数据结构类型比memcached丰富。Redis支持String、list、set、hash、zset(有序集合)等数据结构,而 Memcached 仅支持String类型,复杂对象都要经过序列化后才能进行存储。

2、 Redis和Memcache都支持结构化数据,但memcache还可用于缓存图片、视频等等多媒体数据。

3、Redis可以使用虚拟内存,当物理内存用完时,可以将一些很久没用到的value 交换到磁盘 。因此,理论上Redis可以处理比物理内存更大的数据。而memcached则把所有的数据存储在物理内存里,受限于内存大小。

4、过期策略–memcache在set时就指定,即永不过期。Redis可以通过例如expire 设定。

5、从线程角度来说,memcahce使用多线程,主线程listen,多个worker子线程执行读写,可能会出现锁冲突。redis是单线程的,这样虽然不用考虑锁对插入修改数据造成的时间的影响,但是无法利用多核提高整体的吞吐量,只能选择多开redis来解决。

6、从IO角度来说,Redis选用的I/O多路复用模型(异步阻塞模型),虽然单线程不用考虑锁等问题,但是还要执行kv数据之外的一些排序、聚合功能,复杂度比较高。memcache也选用非阻塞的I/O多路复用模型,速度更快一些。

7、都支持分布式,都可以一主多从 。

8、redis支持持久化,有快照和AOF两种方式,而memcache是纯的内存存储,不支持持久化。

9、Redis支持数据的备份,即master-slave模式的数据备份。memcached不支持数据备份。

10、灾难恢复–memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof(AppendOnly File)恢复。

11、Value 的大小:Redis 可以达到 1GB,而 Memcache 只有 1MB。(?)

二、适用场景

redis比memcache功能更全,集成更方便,但是memcache相比redis在内存、线程、IO角度来说都有一定的优势,可以利用多核cpu提高性能,在不考虑扩展性和持久性的访问频繁的情况下,只存储kv格式的数据,建议使用memcache。memcache更像是个缓存,而redis更偏向于一个存储数据的系统。但是,redis并不适合真的当数据库来用。

参考文章:
redis和Memcached的区别,都什么时候使用?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/578325
推荐阅读
相关标签
  

闽ICP备14008679号