http://www.cnblogs.com/EE-NovRain/p/3268476.html

我这段时间在用redis,感觉挺方便的,但比较疑惑在选择内存数据库的时候到底什么时候选择redis,什么时候选择memcache,然后就查到下面对应的资料,是来自redis作者的说法(stackoverflow上面)。

You should not care too much about performances. Redis is faster per core with small values, but memcached is able to use multiple cores with a single executable and TCP port without help from the client. Also memcached is faster with big values in the order of 100k. Redis recently improved a lot about big values (unstable branch) but still memcached is faster in this use case. The point here is: nor one or the other will likely going to be your bottleneck for the query-per-second they can deliver.

You should care about memory usage. For simple key-value pairs memcached is more memory efficient. If you use Redis hashes, Redis is more memory efficient. Depends on the use case.

You should care about persistence and replication, two features only available in Redis. Even if your goal is to build a cache it helps that after an upgrade or a reboot your data are still there.

You should care about the kind of operations you need. In Redis there are a lot of complex operations, even just considering the caching use case, you often can do a lot more in a single operation, without requiring data to be processed client side (a lot of I/O is sometimes needed). This operations are often as fast as plain GET and SET. So if you don’t need just GEt/SET but more complex things Redis can help a lot (think at timeline caching).

有网友翻译如下[1]:

没有必要过多的关注性能。由于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多的多。
    3、使用底层模型不同:
    新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
    4、运行环境不同:
    redis目前官方只支持LINUX 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁。但是没有放到主干上

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

Redis和Memcache对比及选择相关推荐

  1. Redis与Memcache对比

    文章相关视频: C++架构师学习地址:C/C++Linux服务器开发高级架构师/Linux后台架构师 Linux网络服务器模型,redis,memcached,nginx对比 epoll的网络模型,从 ...

  2. Redis和memcache的异同以及Redis的主从配置

    1.redis概述 redis的接口只有一个 redis的出现时间并不长,是NoSQL中的一种,基于键-值型的存储,与memcache类似,但是memcache中只是内存的缓存,而redis不仅是内存 ...

  3. Redis与Memcache的对比

    Redis与Memcache的对比 1. Redis和Memcache都是将数据存放在内存中,都是内存数据库. 不过memcache还可用于缓存其他东西,例如图片.视频等等 2. 数据类型–Memca ...

  4. redis、memcache、mongoDB 对比

    从以下几个维度,对 redis.memcache.mongoDB 做了对比.  1.性能  都比较高,性能对我们来说应该都不是瓶颈.  总体来讲,TPS 方面 redis 和 memcache 差不多 ...

  5. Redis和Memcache区别,优缺点对比

    1. Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等.  2.Redis不仅仅支持简单的k/v类型的数据,同时还提供l ...

  6. 关于 redis、memcache、mongoDB 的对比

    从以下几个维度,对 redis.memcache.mongoDB 做了对比. 1.性能 都比较高,性能对我们来说应该都不是瓶颈. 总体来讲,TPS 方面 redis 和 memcache 差不多,要大 ...

  7. redis和memcache的对比

    redis和memcache的对比: Memcached: Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. 本质上,它是一个简洁的key-value数据库(存储系统).键值对: ...

  8. Nginx多进程高并发、低时延、高可靠机制在缓存(redis、memcache)twemproxy代理中的应用...

    1. 开发背景 现有开源缓存代理中间件有twemproxy.codis等,其中twemproxy为单进程单线程模型,只支持memcache单机版和redis单机版,都不支持集群版功能. 由于twemp ...

  9. 关系型数据库(Relational Database)与非关系型数据库(NoSQL)的区别:(MySQL,Redis,Memcache,MongoDB)

    Table of Contents 关系型数据库(Relational Database) 什么是关系数据库 什么是SQL? 关系数据库的结构 关系模型 关系数据库的好处 数据一致性 隔离性和原子性 ...

最新文章

  1. html实现牌匾效果,4款店面牌匾设计效果图 店铺门头亚克力牌匾样式制作设计图...
  2. 金九银十加薪季,测试题预热一波。
  3. winx修改计算机用户名,怎么修改我的电脑用户名win10
  4. [转载] python win32api 使用小技巧
  5. Jlinko ob驱动
  6. 企业该如何做好IT规划
  7. 空气负氧离子监测系统建设方案
  8. win10兼容模式怎么设置_win10开始菜单没反应怎么办?是因为没有设置这个
  9. 标梵分享微信官方账号运营推广思路
  10. 计算机卡住了怎样恢复,电脑经常死机,教您电脑经常死机怎么修复
  11. 冯·诺依曼结构与哈佛结构浅析
  12. 计算机如何把文件设为隐藏,电脑如何显示隐藏的文件夹 电脑怎么设置隐藏文件夹...
  13. 小白学爬虫---爬取中国房价工资比
  14. JavaSE02(类与对象)
  15. linux镜像文件没有gho,使用OneKey备份系统后找不到GHO系统文件解决方法
  16. linux txt file busy,linux使用cp报错 Text file busy
  17. 光纤收发器怎么使用?
  18. Linux03——基础篇2
  19. 2022年制冷与空调设备运行操作理论题库及在线模拟考试
  20. sql多字段求和降序排序_快速入门:Excel中如何按照多个字段排序

热门文章

  1. Eclipse4.8.0无法打开 Eclipse MarketPlace
  2. 十、开始进入PowerBI的世界
  3. 十四、去年写的Numpy使用方法梳理,2020年5月13日整理
  4. xp装linux一键安装教程图解,XP下硬盘安装CentOS 6.0图解教程
  5. 仅输入单张图片,就能“看”出物体材质!这篇图形学论文已被SIGGRAPH 2021收录...
  6. 如何构造天然满足某些约束的神经网络?
  7. 录屏、直播中的鼠标键盘演示神器PointFocus
  8. mysql 二进制查询_MySql如何插入和查询二进制数据_MySQL
  9. JVM【带着问题去学习 02】数据结构栈+本地方法栈+虚拟机栈+JVM栈运行原理
  10. 【Java报错】多数据源mapper异常more than one `primary` bean found among candidates: [sqlSessionFactory] 问题分析解决