原文地址:http://blog.csdn.net/sunmenggmail/article/details/36176029

没有必要过多的关注性能。由于Redis只使用单核,而Memcached可以使用多核,所以在比较上,平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。说了这么多,结论是,无论你使用哪一个,每秒处理请求的次数都不会成为瓶颈。

你需要关注内存使用率。对于key-value这样简单的数据储存,memcache的内存使用率更高。如果采用hash结构,redis的内存使用率会更高。当然,这些都依赖于具体的应用场景。

你需要关注关注数据持久化和主从复制时,只有redis拥有这两个特性。如果你的目标是构建一个缓存在升级或者重启后之前的数据不会丢失的话,那也只能选择redis。

你应该关心你需要的操作。redis支持很多复杂的操作,甚至只考虑内存的使用情况,在一个单一操作里你常常可以做很多,而不需要将数据读取到客户端中(这样会需要很多的IO操作)。这些复杂的操作基本上和纯GET和POST操作一样快,所以你不只是需要GET/SET而是更多的操作时,redis会起很大的作用。

对于两者的选择还是要看具体的应用场景,如果需要缓存的数据只是key-value这样简单的结构时,我在项目里还是采用memcache,它也足够的稳定可靠。如果涉及到存储,排序等一系列复杂的操作时,毫无疑问选择redis。

关于redis和memcache的不同,下面罗列了一些相关说法,供记录:

redis和memecache的不同在于[2]:

1、存储方式:
    memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小
    redis有部份存在硬盘上,这样能保证数据的持久性,支持数据的持久化(笔者注:有快照和AOF日志两种持久化方式,在实际应用的时候,要特别注意配置文件快照参数,要不就很有可能服务器频繁满载做dump)。
    2、数据支持类型:
    redis在数据支持上要比memecache多的多。

个人总结一下,有持久化需求或者对数据结构和处理有高级要求的应用,选择redis,其他简单的key/value存储,选择memcache。

最新文章

  1. mysql 命令行操作入门(详细讲解版)
  2. Spring3系列8- Spring 自动装配 Bean
  3. 敏捷开发中高质量 Java 代码开发实践
  4. Windows下使用命令行设置ip地址的DNS服务器
  5. 27.some company's Spi Flash chip replace altera epcsxxx
  6. easyui返回数据类型
  7. CSS3 旋转的八卦图
  8. hdu 1062 Text Reverse 字符串
  9. String对象
  10. 极化码的matlab仿真(2)——编码
  11. Rails + React +antd + Redux环境搭建
  12. 在linux中安装selenium+chrome
  13. springboot读取properties和yml配置文件
  14. oracle配置访问白名单教程
  15. Warning:Configuration 'compile' is obsolete and has been replaced with 'implementation'. It will be
  16. 【Java】JABX实现对象与XML互转
  17. poj2488 A Knight's Journey
  18. 【SSH网上商城项目实战02】基本增删查改、Service和Action的抽取以及使用注解替换xml
  19. Android如何实现毛玻璃效果之Android高级模糊技术
  20. [HDU4362] Palindrome subsequence (区间DP)

热门文章

  1. SQLserver本地数据库开发
  2. vlc 控件属性和方法
  3. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>
  4. linux下使用URLOS搭建nextcloud私有云盘系统
  5. SQL 批量添加的语法
  6. java Proxy InvocationHandler 动态代理实现详解
  7. [python] 执行 dos 命令
  8. (5.6)mysql高可用系列——MySQL Utilities 管理工具
  9. 卸载mysql后再安装提示The service already exists!问题解决方法
  10. python基础_面向对象