`
jiaoronggui
  • 浏览: 1320030 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
B7c2eb31-a8ea-3973-a517-d00141f39b89
项目管理软件-redmin...
浏览量:116154
4a63e153-250f-30f6-a051-97cfc67cb3d3
IT职业规划
浏览量:198819
社区版块
存档分类
最新评论

Memcached 真的过时了吗? redis和Memcached

阅读更多

这两年Redis 火得可以,Redis也常常被当作Memcached 的挑战者被提到桌面上来。关于Redis与Memcached的比较更是比比皆是。然而,Redis真的在功能、性能以及内存使用效率上都超越了Memcached吗?

下面内容来自Redis作者在stackoverflow上的一个回答,对应的问题是《Is memcached a dinosaur in comparison to Redis? 》(相比Redis,Memcached真的过时了吗?)

  • 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.
  • 没有必要过多的关心性能,因为二者的性能都已经足够高了。由于Redis只使用单核,而Memcached可以使用多核,所以在比较上,平均每一 个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近 也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。说了这么多,结论是,无论你使用哪一个,每秒处理请求的次数都不会成为瓶 颈。(比如瓶颈可能会在网卡)
  • 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.
  • 如果要说内存使用效率,使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。当然,这和你的应用场景和数据特性有关。
  • 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.
  • 如果你对数据持久化和数据同步有所要求,那么推荐你选择Redis,因为这两个特性Memcached都不具备。即使你只是希望在升级或者重启系统后缓存数据不会丢失,选择Redis也是明智的。
  • 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).
  • 当然,最后还得说到你的具体应用需求。Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在 Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通 常和一般的GET/SET一样高效。所以,如果你需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
分享到:
评论

相关推荐

    redis+redis图形化界面+管理操作

    用于Windows、Linux、MacOS和iPadOS等操作系统,主要的功能就是分析,并可视化你的Redis服务器内存使用情况,通过批量删除来删除过时的数据,来缓解memcached这类key/value存储的不足的情况。软件的界面非常的简单...

    php4.3 mongo memcache solr redis.dll扩展包以及配置方法

    扩展包"涉及到四个重要的技术:PHP 4.3、MongoDB、Memcached和Solr,以及Redis的DLL扩展。下面我们将详细探讨这些技术及其在PHP中的配置方法。 首先,PHP 4.3是一个较旧的版本,发布于2002年,并在2007年停止了安全...

    Laravel开发-laravel-redis-fallback

    在Laravel框架中,Redis被广泛用作高速缓存和队列驱动器,因其高性能和灵活性而备受青睐。然而,在特定情况下,如Redis服务不可用,应用需要有回退机制来确保正常运行。"Laravel开发-laravel-redis-fallback"的主题...

    PHP4.3 mongo memcache solr redis.dll扩展包.zip 以及配置方法

    5. 配置数据库连接:对于每个扩展,需要配置连接参数,如MongoDB的主机名、端口,memcache和redis服务器的地址,以及Solr的URL。这可以通过代码实现,也可以通过ini配置文件。 6. 开始编程:现在,你可以使用PHP4.3...

    分布式数据缓存技术研究.pdf

    常见的分布式数据缓存系统如Redis、Memcached和Hadoop HBase等,它们都有各自的特点和应用场景。 2.1 Redis Redis是一个开源的、基于内存的数据结构存储系统,支持多种数据类型,如字符串、哈希表、列表、集合和...

    详解php 缓存技术

    2. 数据库缓存(Database Cache):例如使用Memcached或Redis等内存数据库存储SQL查询结果,避免重复执行相同的查询操作。 3. 内存缓存(Memory Cache):如APC(Alternative PHP Cache)、OPcache(PHP自带的Opcode...

    Laravel开发-cache

    Laravel提供了多种缓存驱动,包括Redis、Memcached、文件系统、数据库等,开发者可以根据项目需求选择合适的驱动。默认情况下,Laravel使用文件系统作为缓存驱动,但推荐使用Redis或Memcached等内存缓存系统,因为...

    Laravel开发-mcache

    在 Laravel 中,缓存框架提供了多种驱动,如 Redis、Memcached、数据库等,而 mcache 可能是针对 Memcached 驱动的一个优化扩展。Memcached 是一种分布式内存对象缓存系统,能够显著减少数据库负载,加速动态网页...

    upload_简单的安卓应用市场PHP网站源码_

    10. **性能优化**:为了提供良好的用户体验,源码可能采用了缓存技术(如Memcached或Redis)来减少数据库查询,以及页面静态化等方法提高加载速度。 这个源码包对于学习PHP Web开发,尤其是如何构建一个基本的在线...

    athene2-legacy:此存储库已过时。 请转到https

    10. **性能优化**:通过缓存技术(如APC、Memcached、Redis)和优化代码结构来提高PHP应用的运行效率。 由于athene2-legacy项目已过时,用户应转至新的地址以获取支持和更新。对于想要研究或使用该项目的人来说,...

    阿里45K高级Java岗,必备技能清单来了!.pdf

    在系统架构设计方面,你需要理解分布式架构的概念,包括分布式Session管理、分布式缓存(如Redis、Memcached),以及数据库的读写分离、主从复制、分库分表等。同时,掌握CAP理论、BASE原则,以及Zookeeper、Eureka...

    基于数据库的新闻系统

    采用合适的缓存策略,如使用Redis或Memcached来减少数据库访问,提高响应速度;同时,定期备份数据库以防止数据丢失。 综上所述,“基于数据库的新闻系统”是一个涵盖了前端交互、后端处理、数据库管理和安全防护等...

    python cacheout-0.16.0

    - **多种缓存后端**: 支持包括内存(如`SimpleCache`)、硬盘(如`FilesystemCache`)和分布式缓存(如`Redis`, `Memcached`)等多种缓存解决方案,适应不同规模和需求的项目。 - **键空间管理**: 允许用户定义键...

    服务器开发模式.ppt

    对于高并发场景,可能需要采用缓存技术来减少对后端存储的压力,如Redis或Memcached。同时,数据备份与恢复策略也是保障存储安全的重要部分。 **载衡问题——分合之道** 载衡问题涉及负载均衡和资源分配。服务器...

    缓存:具有通用接口的瘦PSR-6缓存包装器,该接口与各种缓存后端有关,强调缓存标记和索引

    反对PHP 5.3 ,5.4,5.5,5.6,7.0,7.1,7.2,7.3 和HHVM , 并针对APC , APCu , Redis , MongoDB , Sqlite , MySQL , PgSQL和Memcached ,... 支持一系列序列化器: igBinary , msgpack , json , php ,....

    php新闻发布系统源码

    使用缓存技术(如Redis或Memcached)可以显著提升系统的性能,减少数据库的负载。将热门新闻或查询结果缓存起来,可以避免频繁地访问数据库。 9. **响应式设计** 为了适应不同设备的显示,系统应采用响应式设计,...

    最热门的Java 分布式面试题汇总

    4. 分布式session一致性:可以通过Session复制、Session黏贴或使用分布式session存储(如Redis、Memcached)来保持一致性。 5. ZooKeeper的ZAB协议:Zookeeper原子广播协议,用于保证分布式环境中数据的一致性,...

    一个陈旧的WebGame服务端的优化

    通过合理设计数据库表结构,使用索引,优化SQL查询,以及采用缓存策略(如Redis或Memcached),可以显著提升数据库性能。 3. **负载均衡**:随着玩家数量的增加,单一服务器可能会不堪重负。通过引入负载均衡技术,...

    Laravel开发-laravel-cache-commands

    Laravel支持多种缓存驱动,包括Redis、Memcached、File、Database和Array。你可以根据项目需求选择合适的缓存驱动,并在`.env`文件中配置相应的连接信息。 三、Laravel Cache Artisan命令 1. `cache:clear`:这个...

Global site tag (gtag.js) - Google Analytics