博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis和memcached有什么区别?
阅读量:3896 次
发布时间:2019-05-23

本文共 838 字,大约阅读时间需要 2 分钟。

1)Redis支持服务器端的数据操作:

Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去,这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的数据操作通常和一般的SET和GET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么redis会是不错的选择。

2)内存使用效率对比:

使用简单的key-value存储,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。

3)性能对比:

由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。

4)集群模式:

Memcached没有原生的集群模式,需要依靠客户端来实现往集群中分片(一致性hash算法)写入数据。但是Redis目前时原生支持集群模式的。Redis Cluster是一个实现了分布式且允许单点故障的Redis高级版本,它没有中心节点,具有线性可伸缩的功能。

5)数据存储:

都是将数据存放在内存中,不过memcached还可以用于缓存其他东西,如图片,视频等。memcached把数据全部存在内存中,断电之后会挂掉,数据不能超过内存大小;redis可对数据进行持久化,存在磁盘,重启会重新加载数据到redis中。同时redis并不是所有的数据都一直存在内存中,当物理内存用完时,redis可以将一些很久没用到的value交换到磁盘中,但memcached超过内存比例会抹掉前面的数据。

6)Memcached支持多核多线程,Redis单线程操作。

转载地址:http://zwken.baihongyu.com/

你可能感兴趣的文章
[小技巧] Mac OS X上键盘的键位重映射
查看>>
Java对Oracle中Clob类型数据的读取和写入
查看>>
Spring中Quartz的配置
查看>>
MyBatis 防止 % _ sql 注入攻击 解决方法
查看>>
plsql oracle 无法解析指定的连接标识符
查看>>
Linux后台开发应该具备技能
查看>>
Eclipse Tomcat 无法添加项目
查看>>
SVN更新失败 解决方法
查看>>
关于Java的File.separator
查看>>
linux定时任务的设置
查看>>
MySQL 5.7 完全傻瓜安装教程 图文
查看>>
Hibernate框架概述&SSH框架工作原理以及流程
查看>>
Aapche POI txt 导入excel
查看>>
C语言 ## __VA_ARGS__ 宏
查看>>
C++项目中的extern "C" {}
查看>>
(转)C++中extern “C”含义深层探索
查看>>
【日常小记】linux中强大且常用命令:find、grep
查看>>
Linux多线程编程(不限Linux)
查看>>
C/C++内存泄漏及检测
查看>>
C中的继承和多态
查看>>