`
13146489
  • 浏览: 246352 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Redis 和 memcached

 
阅读更多
原文地址:http://www.ibm.com/developerworks/cn/java/j-javadev2-22/
Memcached 是一个众所周知的内存对象缓存系统,通过将目标键和值导入内存缓存运行。因此,Memcached 能回避读取磁盘时发生的 I/O 成本问题。在 Web 应用程序和数据库之间粘贴 memcached 时会产生更好的读取性能。因此,对于那些需要快速数据查询的应用程序,Memcached 是一个不错的选择。其中的一个例子为股票查询服务,需要另外访问数据库获取相对静态数据,如股票名称或价格信息。
MemcacheDB
将 Redis 与 memcached 相比较并不公平,它与 MemcacheDB 相比要好的多,MemcacheDB 是一个分布式键值对存储系统,专为数据持久化而设计。MemcacheDB 与 Redis 较为相似,其新增优势可以使其轻松地与 memcached 实现的客户端进行通信。
但是 memcached 也有其局限性,其中一个事实就是它所有的值均是简单的字符串。Redis 作为 memcached 的替代者,支持更加丰富的功能集。一些基准 (benchmarks) 也表明 Redis 的速度要比 memcached 快很多。Redis 提供的丰富数据类型使其可以在内存中存储更为复杂的数据,这是使用 memcached 无法实现的。同 memcached 不一样,Redis 可以持久化其数据。
Redis 解决了一个重大的缓存问题,而其丰富的功能集又为其找到了其他用途。由于 Redis 能够在磁盘上存储数据以及跨节点复制数据,因而可以作为数据仓库用于传统数据模式(也就是说,您可以使用 Redis,就像使用 RDBMS 一样)。Redis 还经常被用作队列系统。在本用例中,Redis 是备份和工作队列持久化存储(利用 Redis 的列表类型)的基础。GitHub 是以此种方法使用 Redis 的大规模基础架构示例



结束语
Redis 对于许多数据存储场景非常有用,因为它可以将数据持久化到磁盘(还因为它支持一个丰富的数据集),有时候,它是 memcached 的有力竞争对手。有些情况下,对于您的领域也是很有意义的,您可以使用 Redis 作为数据模型和队列的一个备份存储。Redis 客户端实现几乎可被移植到任何编程语言中。
Redis 不是 RDMBS 的完全替代品,也不是一个重量级存储,但是和 MongoDB 一样拥有丰富的功能。然而,在很多情况下,它可与这些技术共存。正如本文所述,Redis 是一个良好的应用程序单机数据解决方案,可以运行大量数据查询,或者其中的实时统计可通过 Redis 的快速原子操作完成。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics