Memcached真的过时了吗?
作者:nosqlfan
on 星期一, 三月 12, 2012 · 3条评论
【阅读:2,892 次】
这两年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会是不错的选择。
来源:Is memcached a dinosaur in comparison to Redis?
(其他人的回答同样值得一看)
转自:http://blog.nosqlfan.com/html/3729.html
分享到:
相关推荐
**Redis实战 中文版**,这是一本专为学习和掌握Redis数据库技术而编写的实战指导书籍。Redis作为一款高性能的内存数据结构存储系统,广泛...对于想在IT领域深化对Redis理解的开发者来说,这无疑是一份宝贵的参考资料。
总结,Redis是高效、功能丰富的键值存储系统,理解和掌握其核心概念、存储机制和应用场景,对于提升系统性能和解决实际问题具有重要意义。在面试中,对Redis的深入理解往往能展现出开发者对高性能系统设计的洞察力。
通过这些例子,开发者可以快速理解和学习如何在LabVIEW中有效利用Redis服务。 总结来说,`REDIS_redis的工具包`提供了在LabVIEW中无缝集成Redis的能力,使得LabVIEW程序能够利用Redis的强大功能,实现高效的数据...
Redis 是一个高性能的键值数据库,它以键值对的形式存储数据,广泛应用于缓存、消息中间件、...理解 Redis 的核心特性和如何在 Windows 环境下运行 Redis,将有助于开发者更好地利用 Redis 来提升应用的性能和可靠性。
Redis,全称Remote Dictionary Server,是一款开源的、高性能的键值存储系统,广泛应用于...通过理解其数据类型、命令操作、持久化机制以及复制与高可用性策略,开发者可以充分利用Redis优化应用程序,提升系统性能。
Redis是一款高性能的键值对数据库,常用于缓存、消息队列等场景。在Windows操作系统上运行Redis,通常需要借助一些额外的工具。标题提到的"redis在win上的...理解这些步骤对于在Windows环境下高效地使用Redis至关重要。
首先,让我们深入理解Redis的核心特性: 1. **内存存储**:Redis的所有数据都存储在服务器的内存中,这使得它在读写速度上远超传统的磁盘存储数据库。然而,这也意味着Redis不适合存储非常庞大的数据集,因为它会...
- 图形化展示数据结构,便于理解和操作 - 支持数据导入导出,方便数据迁移和备份 - 提供日志查看功能,方便问题排查 - 管理数据库,如删除、修改键值,执行命令等 综上所述,Redis 是一个强大的内存数据库系统,...
同时,描述中提到了两个版本——一个是"Redis文件夹为独立的版本",可能是提供了一个简单的非WPF客户端示例,便于理解Redis的基本操作;另一个是"WpfRedis为WPF版本",意味着这个版本是专门针对WPF应用设计的,可能...
在Linux系统中安装Redis是一个常见的任务,特别是在搭建服务器或开发基于Redis的数据...了解和熟练掌握Redis的安装和配置对于任何IT专业人员来说都是一个重要的技能,它能帮助你更好地理解和运用这个强大的键值数据库。
Redis是世界上最受欢迎的开源内存数据结构存储系统,它可以用作...以上就是关于"redis win 64位 及 安装卸载RedisServer服务"的相关知识点,理解并掌握这些内容,将有助于你在Windows环境中有效地使用和管理Redis服务。
- **数据分析**:对于非技术人员来说,使用RDM可以更直观地理解存储在Redis中的数据结构和内容,便于进行数据分析工作。 #### 四、总结 Redis Desktop Manager是一款功能全面、易于使用的Redis管理工具,无论是对于...
Redis是一款高性能的键值存储系统,常用于数据库、缓存和消息中间件。在本文中,我们将探讨如何在Ubuntu操作...对于源码探索,可以访问Redis的GitHub仓库,了解其内部实现,这对深入理解Redis的工作原理非常有帮助。
1. Redis的数据结构和命令:理解Redis提供的不同数据类型及其操作命令,如字符串、哈希表、列表、集合、有序集合等。 2. C++库选择:熟悉cpp-redis、hiredis等C++ Redis客户端库,了解其API用法。 3. 网络编程:理解...
Redis是一种高性能的键值对数据存储...例如,北京动力节点的Redis课程可能涵盖了Redis的基本概念、数据结构、持久化、复制、事务、安全等内容,杨利军老师的讲解能够帮助初学者快速上手Redis,并深入理解其工作原理。
通过访问该地址,开发者可以下载最新的phpredis扩展,并且可以查看到相关的文档和使用示例,这对于理解和掌握phpredis的正确使用方法至关重要。 为了更高效地使用phpredis扩展,用户还应当熟悉Redis配置文件(redis...
Redis是一款开源、高性能的键值对存储系统,常被用作数据库、缓存和消息中间件。在Windows环境下安装和使用Redis可能与在Linux等操作系统上...理解并掌握这些知识点,有助于在Windows环境中充分利用Redis的性能和功能。
Redis 5.0是Redis数据库的一个重要版本,它在Windows 64位平台上提供了全面的支持。Redis是一款开源的、基于键值对的数据存储系统,常用于缓存、数据库和...对于开发者和运维人员来说,理解和掌握这些知识点至关重要。
它简化了与Redis交互的过程,尤其对于初学者来说,是理解Redis数据结构和操作的优秀辅助工具。 总的来说,这个压缩包提供的Redis Desktop Manager是Redis用户的必备工具之一,通过它,你可以高效地管理和维护你的...
Redis 是一个高性能的键值数据存储...理解并熟练运用以上知识点,可以帮助开发者充分利用 Redis 构建高效、可靠的分布式应用程序。在实际项目中,根据业务需求选择合适的数据结构、持久化策略和扩展方案是至关重要的。