zoukankan      html  css  js  c++  java
  • Redis Vs Memcached

    因为我们项目上没有使用过两种,而我依旧对他们孰优孰劣比较好奇。

    所以我逛了很多国内外的网站,得到了以下的结论。

    首先,Redis和Memcached是两款非常给力的、快速的、并且都是使用内存做分布式缓存数据的服务。对于提升我们网站的的性能有很大的帮助(通过缓存数据、HTML片段或其他)。

    接下来,通过几点来进行对比:

    读写速度

    • 都非常快。总体上显示,redis的速度与memcached几乎一样快。

    内存的使用

    • memcached:设置缓存空间大小,但当插入项时,守护进程就会自动增加空间大小。没有真正的方法来回收这些空间。所有的键都可能过期,可以刷新数据库,它仍然会使用配置的全部RAM。
    • redis:Redis永远不会使用超出我们设置的空间大小。并且它会智能返回不需要的空间,例如:我将100,000个2KB的字符串(200MB)存储在这两个字符串中。Memcached RAM的使用增加到225MB。Redis RAM的使用增加到228MB。在刷新了这两个数据之后,redis删除了29MB,而memcached则保持在225MB。
    • 磁盘I/O:对于redis来说,这是一个明显的优势,因为它在缺省情况下是这样做的,并且具有可配置的持久性。在没有第三方工具的情况下,Memcached没有向磁盘转储的机制。

    memcached

    • Memcached是一个简单易变的高速缓存服务器。它允许您将键/值对存储在一个值限制为1MB的字符串中。
    • 我们可以快速的访问这些值,这个速度指的是网络或内存带宽的饱和。
    • 当您重新启动memcached时,数据就会消失。这对于缓存来说是很好的。我们不应该把重要的东西储存在那里。

    redis

    • Redis可以像memcached一样完成相同的工作,而且可以做得更好。
    • Redis也可以充当缓存。它也可以存储键/值对。redis,可以达到512MB
    • 可以关闭持久性,并且在重新启动时也会丢失数据。
    • 它的速度也非常快,经常受到网络或内存带宽的限制。
    • Redis有集群支持,并带有高可用性的工具(redis-sentinel)。在过去的几年中,redis也成为了第三方工具的领导者。Redis Labs、亚马逊等公司提供了许多有用的Redis工具和服务。围绕redis的生态系统要大得多。大规模部署的数量现在可能比memcached更大。

    Redis不仅仅是一个缓存。它是一个内存中的数据结构服务器。

    Redis的文档比memcached更完善

    容灾

    • 在快照模式中,突然崩溃可能导致少量丢失的数据。如果您绝对需要确保没有数据丢失,不要担心,redis也有AOF (Append Only File) 模式。

    支持更多的数据类型

    • Memcached仅限于字符串,但Redis作为一个数据结构服务器,可以提供多种不同的数据类型。它还提供了所需的命令,以充分利用这些数据类型。例如:Strings、Hashes、Lists、Sets等等(查看数据类型官方文档

    事物性和原子性

    • redis中的命令是原子性的,这意味当向redis写入一个值时,所有连接到redis的客户端都可以看到该值。
    • 从技术上讲,memcached也是原子性的。

    流水线

    • Redis提供了一个名为“流水线”的特性。如果有许多想要执行的redis命令,可以使用管道将它们发送到redis,而不是一次一次。
    • 通常,当对redis或memcached执行命令时,每个命令都是一个单独的请求/响应周期。通过使用管道,redis可以缓冲多个命令,并一次性执行所有命令,响应所有命令。

    总结

    memcached,它是一个强大的、简单的、稳定的、成熟的工具。甚至还有一些情况,它比redis快一些。

    如果您已经在使用memcached缓存,如果它满足您的需要,那么就继续使用它。如果是新的项目,我推荐您使用redis。

    非常感谢您的耐心观看,您的关注是我最大的动力! 不积跬步无以至千里,不积小流无以成江海!
  • 相关阅读:
    A1066 Root of AVL Tree (25 分)
    A1099 Build A Binary Search Tree (30 分)
    A1043 Is It a Binary Search Tree (25 分) ——PA, 24/25, 先记录思路
    A1079; A1090; A1004:一般树遍历
    A1053 Path of Equal Weight (30 分)
    A1086 Tree Traversals Again (25 分)
    A1020 Tree Traversals (25 分)
    A1091 Acute Stroke (30 分)
    A1103 Integer Factorization (30 分)
    A1032 Sharing (25 分)
  • 原文地址:https://www.cnblogs.com/sheldon-blog/p/8110919.html
Copyright © 2011-2022 走看看