Redis 是一種快速、開放原始碼的記憶體內鍵值資料結構存放區。Redis 隨附一組多功能的記憶體內資料結構,讓您能夠輕鬆地建立各種自訂應用程式。Redis 主要使用案例包含快取、工作階段管理、發佈/訂閱以及排行榜。這是目前最熱門的鍵值存放區。已獲得 BSD 授權,以優化的 C 程式碼撰寫,且支援多種開發語言。Redis 是遠端字典伺服器 (REmote DIctionary Server) 的縮寫。

由於速度優勢和使用方便,Redis 成為需要最佳效能的 Web、行動、遊戲、廣告技術和物聯網應用程式的熱門選擇。AWS 透過稱為適用於 Redis 的 Amazon ElastiCache 的全受管且經過優化的資料庫服務提供 Redis 支援,也允許客戶在 AWS EC2 上執行自我管理的 Redis。

Amazon EC2 Container Service

試用
Benefit_ElastiCache_Performance

與資料存放在磁碟或 SSD 的大多數資料庫管理系統不同,所有 Redis 資料都位於自己的伺服器主記憶體。因為不需要存取磁碟,像 Redis 這樣的記憶體內資料庫可避免尋找時間延遲,還可以透過使用較少 CPU 指示的較簡單演算法存取資料。通常操作都可在一毫秒內完成。

Benefit_ElastiCache_data_structure

Redis 允許使用者存放對應到各種資料類型的鍵值。基本的資料類型為字串,可以是文字或二進位資料,最大可達 512 MB。Redis 也支援以新增順序排序的字串清單;未排序的字串集;依分數排序的排序集;存放欄位和值清單的雜湊;以及用來計數資料集中唯一項目的 HyperLogLogs。幾乎任何類型的資料都可使用 Redis 存放在記憶體中。

Benefit_ElastiCache_easeofuse

Redis 隨附的多種工具可加快開發和操作的速度且更容易使用,包含發佈/訂閱,可發佈訊息到頻道,然後交付給訂閱者 – 非常適用於對談和簡訊系統;TTL 鍵值可有固定的存留時間,該時間過後即自行刪除 – 要避免資料庫填滿不需要的資料時非常實用;原子計數器可確保競爭條件不會產生不一致的結果;而 Lua 則是功能強大卻輕量的指令碼語言。

Benefit_ElastiCache_replication

Redis 採用主從式架構,並支援非同步複寫,可將資料複寫到多個從屬伺服器。這不但可提升讀取效能 (因為請求可分割到多部伺服器),還能在主伺服器發生故障時恢復。

為提供耐久性,Redis 同時支援時間點快照 (將 Redis 資料集複製到磁碟) 和建立 Append Only File (AOF),在寫入時將每個資料變更存放到磁碟。這兩種方法都可在發生故障時快速恢復 Redis 資料。

Benefit_ElastiCache_languageSupport

Redis 開發人員可使用超過一百種開放原始碼用戶端。支援的語言包含 Java、Python、PHP、C、C++、C#、JavaScript、Node.js、Ruby、R、Go 等等。

Redis 位於其他資料庫「之前」,可建立高效能記憶體內快取以減少存取延遲、增加輸送量,以及減輕關聯式或 NoSQL 資料庫的負載。

Redis 非常適合工作階段管理任務。只要使用 Redis 做為快速鍵值存放區並搭配適當的工作階段鍵值 TTL,即可管理工作階段資訊。遊戲、電子商務網站和社交媒體平台等線上應用程式通常都需要工作階段管理。

使用 Redis 排序集資料結構可將元素保存在清單中,並依分數排序。透過此方式可輕鬆建立動態排行榜顯示遊戲的贏家,或張貼最喜愛的訊息,或是顯示排行榜中玩家的任何其他資訊。

Redis 可測量活動率,並視需要加以調節。您可以使用與用戶端 API 金鑰關連的 Redis 計數器,計算一段特定時間內的存取要求數量,並在超過限制時採取行動。速率限制器通常用於限制論壇的文章數量、限制資源使用率,以及抑制濫發垃圾郵件者的影響。

Redis 清單資料結構可輕鬆實作輕量型的持久性佇列。清單提供原子操作以及封鎖功能,因此適合用於需要可靠的訊息代理程式或循環清單的各種應用程式。

Redis 支援發佈/訂閱標準和模式比對。這讓 Redis 能夠支援高效能聊天室、即時註解串流及伺服器互相通訊。您也可以使用發佈/訂閱,根據發佈的事件觸發動作。

適用於 Redis 的 Amazon ElastiCache 是全受管且與 Redis 相容的記憶體內資料結構服務。