[ElasticCache] Redis和Memcached有什么区别

首先

在学习SAA过程中,避不开的是ElasticCache。
对于初学者而言,这个实践学习有点难度……!
虽然这个也没关系,但困扰我的是当出现“选择Redis还是Memcached?”这类问题时。

AWS官方是否意识到了Redis和Memcached有何不同,我并不清楚,但提供了解释。

虽然阅读公式文章就能解决问题,但为了学习的目的,我会总结一下Redis和Memcached。

ElasticCache是什么

在解答这个问题之前,让我们来回顾一下ElasticCache。

简单来说,ElasticCache是AWS提供的一个内存数据存储解决方案。所有数据都仅保存和管理在主内存中。由于直接存储在主内存中,所以在访问数据时无需访问磁盘。相比于存储在辅助存储设备(如HDD、SSD)的EBS或RDS,它具有更高的写入和读取速度。

虽然能够以最短的响应时间处理,但由于是内存存储,也存在一些缺点:
– 存在在发生故障时数据丢失的风险。
– 没有事务功能,导致数据不完整。

因此,其使用范围也有限。
根据官方指南,推荐用于游戏排行榜、缓存等。正如ElasticCache这个名称所示,它是一个适用于缓存的服务。

总结一下,

短長内容メリット低レイテンシーかつマイクロ秒単位の読み書きが可能。デメリット障害時にデータが失われてしまう恐れがある。トランザクション機能がないため、データに完全性がない。

Redis与Memcached对比

ElastiCache的特点是可以选择使用Redis或Memcached。
需要注意的是,Redis和Memcached并不是AWS独创的数据存储系统,而是使用了受欢迎的第三方开源软件,适用于ElasticCache。
这类似于在RDS中使用mysql或PostgreSQL的感觉。
需要明确的是,本文仅对AWS中的Redis和Memcached进行解释。

因为两者都是内存数据库,所以与关系型数据库相比,它们在速度方面是相似的,但它们各自也有其特点。

以下,我將分別簡要總結如下。

Redis

缓存数据库

“リモートディクショナリサーバー”の略です。
メモリ内key-value型のデータストア(NoSQL)であることが特徴です。

NoSQL × インメモリって、最早速さに関しては向かうところ敵なしでは……?

实际上,这种非常高速的内存数据存储可以增强互联网规模的实时应用程序。

他にもRedisにはできて、Memcachedにはできない機能が多数あります。

Redisにできること(Memcachedにはできないこと)
・データ構造の選択
・スナップショット
・レプリケーション
・クラスタリング構成
・ディスクストレージへのデータの書き出し(バックアップ)
・トランザクション
・Pub/Subメッセージング
・Lua スクリプト
・大規模なリアルタイムの地理空間データを処理するための専用コマンド。
・SSL通信機能による暗号化

在Memcached中,只有Memcached才能完成的任务是存在的(颤抖声)。

高速性と多様性が特徴のRedisは、
ゲーム、eコマース、医療、金融サービス、IoT などのリアルタイム性の求められるアプリケーションに適しています。

内存缓存

在内存中,它以键值型非持久性缓存的形式工作(关于在AWS内部的情况,我实在不太清楚)。其特点是能够利用多个处理核心进行多线程处理。通过计算性能的扩展,意味着它能够处理大量的操作。

顺便提一下,多线程是Redis所没有的功能。
由于能够利用多个核心,对于大型数据集而言,它可以展现比Redis更优秀的性能。

特点是可扩展且安全性优秀的Memcached适用于需要经常访问的网络、移动应用程序、游戏等数据放置在内存中的情况。

概括

名称ユースケースRedisバックアップを始め、様々な機能が欲しい場合はこちらMemcachedマルチスレッドが必要な場合はこちら

我实在不知道哪个更好。
研究得越多,Redis和Memcached的区别就越困扰我。
取决于使用场景的不同,最适合的选择也会不同呢。
尽管如此,如果在考试中出现这道题,我们必须依赖预先准备好的答案。
作为备考策略,请参考这里。

最后

让人感到困惑。
这个话题很复杂,或者说是看不见的,所以我打算找机会再深入研究一下。

参考
Redis作者本人对Redis和Memcached的比较
比较Redis和Memcached
在ElastiCache中选择Memcached还是Redis?

广告
将在 10 秒后关闭
bannerAds