最近,我们看到许多使用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. idea 使用问题总结

    tomcat     edit configurations配置问题:         在deployment选项卡内增加artifact到server,在Application context选择应 ...

  2. Unity Notes调制粒子系统的颗粒的最大数目

    Unity该粒子系统是很容易使用.这样的问题是在实际的过程中遇到的:以控制的粒子系统组件的动态需要可产生颗粒的最大数目. 看doc他说,有maxParticles控制.却没有这个开放的參数.仅仅能通过 ...

  3. redis研究记录

    1 redis安装 wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-st ...

  4. 抽象工厂模式和autofac的使用总结

    抽象工厂模式和依赖注入的使用目的都是降低对象直接依赖耦合关系,应该说依赖注入是抽象工厂模式的一种升华,功能更强大. 说到抽象工厂的模式,一般都要先解释下简单工厂,简单工厂就是将对象的实例化抽取出来形成 ...

  5. 开源网络库的分析libev libevent nginx ....

    最经看关于网络编程的一些书,对于网络编程中的一些基本东西,开源库已经封装的很好了,但是库归根结底还是使用的基本API,所以就想着分析一下,尤其是在看了各个库的介绍以后,所以这段时间想在这个方向投入一点 ...

  6. AFNetWorking 提交 NSArray 类型参数 取不到值的解决办法

    在使用AFNWorking 提交参数的时候, 其中包含NSArray类型的参数, 但是后台可以接收到普通int, string 类型的参数,就是接收不到array类型的, google后发现原来AFN ...

  7. 基于FPGA的DW8051移植(三)

    总结一下问题: 1) http://www.cnblogs.com/sepeng/p/4137405.html  基于FPGA的DW8051移植(一)里面用modelsim观测波形发现程序进入了ida ...

  8. AWVS介绍(转)

    使用AWVS对域名进行全局分析,深入探索: 首先,介绍一下AWVS这个工具. Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网 ...

  9. C++ pair 使用方法

    类模板:template <class T1, class T2> struct pair 參数:T1是第一个值的数据类型,T2是第二个值的数据类型. 功能:pair将一对值组合成一个值, ...

  10. HDU 4883 TIANKENG’s restaurant (贪心)

    链接:pid=4883">带我学习.带我飞 第一次BC,稳挂,WA n多次.今天又一次做了一下 略挫 #include <iostream> #include <cs ...