1、性能方面:没有必要过多的关心性能,因为二者的性能都已经足够高了。由于Redis只使用单核,而Memcached可以使用多核,所以在比较上,平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然

2、Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。说了这么多,结论是,无论你使用哪一个,每秒处理请求的次数都不会成为瓶颈。(比如瓶颈可能会在网卡)
3、内存使用效率:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。当然,这和你的应用场景和数据特性有关。
4、数据持久化:如果你对数据持久化和数据同步有所要求,那么推荐你选择Redis,因为这两个特性Memcached都不具备。即使你只是希望在升级或者重启系统后缓存数据不会丢失,选择Redis也是明智的。
5、数据结构:当然,最后还得说到你的具体应用需求。Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果你需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
网络IO模型方面:Memcached是多线程,分为监听线程、worker线程,引入锁,带来了性能损耗。Redis使用单线程的IO复用模型,将速度优势发挥到最大,也提供了较简单的计算功能

6、内存管理方面:Memcached使用预分配的内存池的方式,带来一定程度的空间浪费 并且在内存仍然有很大空间时,新的数据也可能会被剔除,而Redis使用现场申请内存的方式来存储数据,不会剔除任何非临时数据 Redis更适合作为存储而不是cache

7、数据的一致性方面:Memcached提供了cas命令来保证.而Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断

 总结:

如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:

1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

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

3 、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

4、Redis可以实现主从复制,实现故障恢复。

5、Redis的Sharding技术: 很容易将数据分布到多个Redis实例中

最新文章

  1. spring boot启用tomcat ssl
  2. MVC缺点
  3. NC 解决启动环境报内存溢出问题
  4. [IIS]IIS扫盲(一)
  5. 设计模式学习起点 UML类图笔记
  6. Java通过Executors提供四种线程池
  7. Windows 7下载
  8. tomcat部署javaweb项目的三种方式
  9. RMAN学习笔记
  10. Unity3D移植到自己的Android程序
  11. perl 使用use utf8
  12. 全栈JavaScript路(八)得知 CDATASection 种类 节点
  13. 接口自动化测试:Thrift框架RPC协议客户端开发
  14. iOS设备唯一标识的前世今生
  15. Python基础数据类型之int、bool、str
  16. python爬虫第三天
  17. 原生JS-旋转木马
  18. PHP函数memory_get_usage获取PHP内存清耗量
  19. PHP微信公共号H5支付。
  20. linux常用的搜索命令

热门文章

  1. kth-largest-element
  2. YAML_05 定义一个变量创建用户,设置密码
  3. luogu 2312 解方程 乱搞+取模
  4. Linux 的磁盘格式化、挂载、磁盘检验、df、du、fdisk、free命令的使用
  5. AtCoder Grand Contest 010题解
  6. golang-os文件操作
  7. 项目管理、bug管理工具 ---禅道使用流程
  8. sql转码
  9. ubuntu之路——day9.3 softmax regression激活函数
  10. C传递参数给main函数