Memcached

易於使用的分散式記憶體內鍵值存放區,可用來做為高效能的快取或工作階段存放區。

什麼是 Memcached?

Memcached 是一種易於使用的高效能記憶體內資料存放區。它提供一個成熟、可擴展的開放原始碼解決方案,可提供低於一毫秒的回應時間,很適合作為快取工作階段存放區。Memcached 是支援 Web、行動應用程式、遊戲、廣告技術和電子商務即時應用程式的熱門選項。

什麼是 Memcached?

Memcached 如何運作?

與在磁碟或 SSD 存放資料的資料庫不同,Memcached 是將資料保存在記憶體中。省去存取磁碟的麻煩,Memcached 這類記憶體內鍵值存放區可避免搜尋時間延遲,還能在幾微秒的時間內存取資料。Memcached 也是分散式的,這表示增加新的節點便可輕鬆擴展。此外,由於 Memcached 有多個執行緒,因此您可以輕鬆擴展運算容量。由於 Memcached 的速度、可擴展性、簡易設計、高效記憶體管理,以及支援大多數熱門語言的 API,使其成為高效能、大規模快取使用案例的熱門選擇。

Memcached 的優點

Memcached 將所有資料保存在伺服器的主記憶體中。與將大部分資料存放在磁碟或 SSD 的 PostgreSQL、Cassandra 和 MongoDB 此類資料庫不同,記憶體內資料存放區不必重複讀寫磁碟。這樣它們便能夠支援更大規模的操作,而且回應時間更快。結果就是:讀取和寫入時間平均低於一毫秒的極速效能,並支援每秒數百萬次的操作。

Memcached 的設計著重在簡單、通用,因此不但功能強大,還能在應用程式開發中輕鬆使用。Memcached 開發人員可以使用很多開放原始碼用戶端。支援的語言包含 Java、Python、PHP、C、C++、C#、JavaScript、Node.js、Ruby、Go 等等。

Memcached 的分散式多執行緒架構,使其易於擴展。您可以將資料分割到多個節點,只要在叢集中增加新的節點,就可以擴展容量。此外,由於 Memcached 有多個執行緒,因此它可以在特定節點上使用多個核心。這使得擴展運算容量變得很簡單。您可以使用 Memcached 建立可高度擴展的分散式快取解決方案,以提供快速一致的效能。

Memcached 是一個成熟的開放原始碼專案,由充滿活力的社群所支援。WordPress 和 Django 此類應用程式支援使用 Memcached 來提升效能。由於 Memcached 使用開放式標準、支援開放資料格式並含有豐富的用戶端,因此沒有廠商或技術鎖定的問題。

使用案例

快取

Memcached 是實現高效能記憶體快取的絕佳選擇,可減少資料存取延遲、提高輸送量,以及減輕後端系統的負載。Memcached 可以在不到一毫秒的時間內提供快取的項目,讓您能夠以輕鬆且符合經濟效益的方式擴展,以支援更高的負載。Memcached 非常適用於資料庫查詢結果快取、工作階段快取、網頁快取、API 快取,以及影像、檔案和中繼資料等物件的快取。

工作階段存放區

使用 Memcached 做為記憶體內資料存放區是應用程式開發人員的熱門選擇,可在持久性不重要的情況下,用來存放和管理網際網路規模應用程式的工作階段資料。Memcached 旨在提供管理工作階段資料 (如使用者設定檔、登入資料和工作階段狀態) 時,所需的低於一毫秒延遲和規模。

語言支援

Memcached 支援大部分主要的程式設計語言和協定,包含:

Python

Java

PHP

C/C#/C++

Perl

Go

Ruby

JavaScript

Node.js

ASCII 協定

二進位協定

TCP 和 UDP 協定

Redis 相較於Memcached

Redis 和 Memcached 是兩種最熱門的記憶體內鍵值資料存放區。Memcached 的設計以簡單為主,而 Redis 則提供可有效運用在各種使用案例的豐富功能。了解這兩種引擎的差異,以決定哪個解決方案最符合您的需求。進一步了解 Redis 與Memcached

AWS 上的全受管 Memcached

Amazon 提供全受管 Memcached 服務 Amazon ElastiCache for Memcached

  • 可在雲端輕鬆設定、操作和擴展 Memcached 部署。自動偵測和替換故障的節點。
  • 利用經濟實惠且可調整大小的硬體容量。
  • ElasitCache Memcached 叢集用戶端Auto Discovery 搭配使用,透過簡化節點管理來加速應用程式開發。