Redis 是一種快速、開放原始碼的記憶體內鍵值資料結構存放區。Redis 隨附一組多功能的記憶體內資料結構,讓您能夠輕鬆地建立各種自訂應用程式。Redis 主要使用案例包含快取、工作階段管理、發佈/訂閱以及排行榜。這是目前最熱門的鍵值存放區。已獲得 BSD 授權,以優化的 C 程式碼撰寫,且支援多種開發語言。Redis 是遠端字典伺服器 (REmote DIctionary Server) 的縮寫。
由於速度優勢和使用方便,Redis 成為需要最佳效能的 Web、行動、遊戲、廣告技術和物聯網應用程式的熱門選擇。AWS 透過稱為適用於 Redis 的 Amazon ElastiCache 的全受管且經過優化的資料庫服務提供 Redis 支援,也允許客戶在 AWS EC2 上執行自我管理的 Redis。
Amazon EC2 Container Service
試用與資料存放在磁碟或 SSD 的大多數資料庫管理系統不同,所有 Redis 資料都位於自己的伺服器主記憶體。因為不需要存取磁碟,像 Redis 這樣的記憶體內資料庫可避免尋找時間延遲,還可以透過使用較少 CPU 指示的較簡單演算法存取資料。通常操作都可在一毫秒內完成。
Redis 允許使用者存放對應到各種資料類型的鍵值。基本的資料類型為字串,可以是文字或二進位資料,最大可達 512 MB。Redis 也支援以新增順序排序的字串清單;未排序的字串集;依分數排序的排序集;存放欄位和值清單的雜湊;以及用來計數資料集中唯一項目的 HyperLogLogs。幾乎任何類型的資料都可使用 Redis 存放在記憶體中。
Redis 隨附的多種工具可加快開發和操作的速度且更容易使用,包含發佈/訂閱,可發佈訊息到頻道,然後交付給訂閱者 – 非常適用於對談和簡訊系統;TTL 鍵值可有固定的存留時間,該時間過後即自行刪除 – 要避免資料庫填滿不需要的資料時非常實用;原子計數器可確保競爭條件不會產生不一致的結果;而 Lua 則是功能強大卻輕量的指令碼語言。
Redis 採用主從式架構,並支援非同步複寫,可將資料複寫到多個從屬伺服器。這不但可提升讀取效能 (因為請求可分割到多部伺服器),還能在主伺服器發生故障時恢復。
為提供耐久性,Redis 同時支援時間點快照 (將 Redis 資料集複製到磁碟) 和建立 Append Only File (AOF),在寫入時將每個資料變更存放到磁碟。這兩種方法都可在發生故障時快速恢復 Redis 資料。
Redis 開發人員可使用超過一百種開放原始碼用戶端。支援的語言包含 Java、Python、PHP、C、C++、C#、JavaScript、Node.js、Ruby、R、Go 等等。
適用於 Redis 的 Amazon ElastiCache 是全受管且與 Redis 相容的記憶體內資料結構服務。
- 使用 AWS 免費方案試用適用於 Redis 的 ElastiCache
- 進一步了解適用於 Redis 的 Amazon ElastiCache