最近,我们看到许多使用Redis的案例,尤其是大型及先进的系统中应用的更多。事实上,我们正管理着一个新的规模庞大的Redis集群,设计该架构是为了每秒能处理上百万个事务。然而,Redis与Memcache有许多类似的地方,都是基于网络的、运行于内存的、用来储存key value数据的存储器,所以通常被用来缓存许多信息,包括像PHP会话及数据库数据等。但Redis比Memcache要好,原因如下:

Redis最主要的特点是比较稳定,或者说它可将数据存储在物理磁盘上而不是虚拟内存中。这就解决了Memcache所面临的第一个问题:Memcache在损坏或重启时会丢失全部数据。这样,Redis便可用在包含许多服务器的大型系统中,而不会意外丢失数据。通过简单的快照或日志便可保证Redis的持续服务性。但是MemCache则会因为各种各样的一些小问题而受到影响,比如高内存占用率。

Redis还有另外一个有趣的独有的特点:就是数据复制。它允许您建立主-从系统,当主系统瘫痪后,您可在从系统上恢复功能。这也使得您可在从系统上读取数据,从而得到更高的性能,甚至可以在另外一个地理位置的独立数据中心中的分布式从系统上读取。

最后,Redis的功能远比Memcache要多的多,它支持集、列表及更高级的数据组。此外,它拥有许多功能可以处理系统中的数据。它支持某些特定事务及乐观锁定机制,最近发布的2.6版本还支持Lua脚本。

然而,Redis也不是尽善尽美的。最主要的问题就是不支持直接集群,在Memcache中,您可以列出3个服务器进行library分配,甚至可以使用统一的哈希函数,当某个服务器瘫痪时,数据可以一致地迁移出去。幸运的是,Redis团队正在攻关这一技术,准备在下一版本中将该特点融入进来。

另一个重要的明显区别是,Memcache支持多线程而Redis不支持多线程。因为Redis只采用单一内核,所以必须同时处理许多实例,甚至达到每秒要处理1百万个请求。这将给Redis的配置、管理及监控带来挑战。

总的来说,我们看到Redis前进了一大步,尤其是当集群还没有那么重要的时候。Redis比Memcache更强大,存储数据更可靠,并且很可能是“key-value ”存储的未来 。

(Authored by Steve Mushero / ChinaNetCloud CEO & CTO  本博客英文原文请点此查看

Redis 与 Memcache的更多相关文章

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

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

  2. redis、memcache、mongoDB 做了对比

    from: http://yang.u85.us/memcache_redis_mongodb.pdf   从以下几个维度,对redis.memcache.mongoDB 做了对比. 1.性能 都比较 ...

  3. Redis、Memcache和MongoDB的区别(转)

    1.性能 都比较高,性能对我们来说应该都不是瓶颈 总体来讲,TPS方面redis和memcache差不多,要大于mongodb 2.操作的便利性 memcache数据结构单一 redis丰富一些,数据 ...

  4. twemproxy explore,redis和memcache代理服务器

    twemproxy,也叫nutcraker.是一个twtter开源的一个redis和memcache代理服务器. redis作为一个高效的缓存服务器,非常具有应用价值.但是当使用比较多的时候,就希望可 ...

  5. Redis与Memcache的区别

    Redis与Memcache的区别 数据类型:  redis数据类型丰富,支持set liset等类型          memcache支持简单数据类型,需要客户端自己处理复杂对象 持久性: red ...

  6. Redis和Memcache的区别

    Redis和Memcache的区别 总结一: 1.数据类型 redis数据类型丰富,支持set liset等类型 memcache支持简单数据类型,需要客户端自己处理复杂对象 2.持久性 redis支 ...

  7. 关于 redis、memcache mongoDB 的对比

    from:http://yang.u85.us/memcache_redis_mongodb.pdf 从以下几个维度,对 redis.memcache.mongoDB 做了对比.1.性能都比较高,性能 ...

  8. Python操作Redis、Memcache、RabbitMQ、SQLAlchemy

    Python操作 Redis.Memcache.RabbitMQ.SQLAlchemy redis介绍:redis是一个开源的,先进的KEY-VALUE存储,它通常被称为数据结构服务器,因为键可以包含 ...

  9. 关于 redis、memcache、mongoDB 的对比(转载)

    from:http://yang.u85.us/memcache_redis_mongodb.pdf 从以下几个维度,对 redis.memcache.mongoDB 做了对比.1.性能都比较高,性能 ...

  10. [轉]redis;mongodb;memcache三者的性能比較

    先说我自己用的情况: 最先用的memcache ,用于键值对关系的服务器端缓存,用于存储一些常用的不是很大,但需要快速反应的数据 然后,在另一个地方,要用到redis,然后就去研究了下redis. 一 ...

随机推荐

  1. 一个IP每天只弹一次广告窗口

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. TCP/IP之三次握手、四次挥手

    参照:http://www.cnblogs.com/hnrainll/archive/2011/10/14/2212415.html 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建 ...

  3. 查锁住的表,以及kill进程,Oracle常用语句

    --找出所有被锁的对象,定位出哪个回话占用 select l.session_id,o.owner,o.object_name from v$locked_object l,dba_objects o ...

  4. chrome 浏览器帐号登录不来,如何解决自己的书签

    装系统前把 该目录下  C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default    的  Bookmarks 复制出 ...

  5. 安装帝国CMS遇到“修改php.ini,将:short_open_tag 设为 On”的解决方法+“建立目录不成功!请检查目录权限”问题

    想用安装个帝国CMS来做个网站,于是下载了程序,上传到服务器上,但是在输入安装路径的时候却给出了如下图示: 您的PHP配置文件php.ini配置有问题,请按下面操作即可解决: 1.修改php.ini, ...

  6. codeigniter ,看完这些,就可以用它做项目了

    一.MVC 1,入口文件 唯一一个让浏览器直接请求的脚本文件 2,控制器 controller 负责协调模型和视图 3,模型 model 只负责提供数据,保存数据 4,视图 只负责显示,以及搜集用户的 ...

  7. (转)Free函数的参数一定要是malloc返回的那个指针

    Free函数的参数一定要是malloc返回的那个指针   之前认为只要free的参数在malloc分配的区域之内就可以了, 现在发现不对的.在嵌入式里分配堆都是按照块来的,只要在这个块内系统就能识别, ...

  8. C++ cout 如何保留小数输出

    参考 : http://upliu.net/how-cout-out-2-precision.html 大家都知道用 C 语言中 printf () 函数可以非常方便控制保留 几位小数输出 不过在 C ...

  9. 转:javascript面向对象编程

    作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的Object模型很独特,和其他语言都不一样,初学 ...

  10. Arachnid包含一个简单的HTML剖析器能够分析包含HTML内容的输入流

    Arachnid是一个基于Java的web spider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Web spiders并 ...