KV Store - Redis
Redis 的基本介紹與特性
如上面提到,Redis 是一種鍵值對資料庫,是由鍵值對的方式來存資料,而 Redis 的每個鍵可以對應的資料結構很多元,基本上最常見的資料結構都有被支援。舉例來說,字串 (string)、列表 (lists)、集合 (Sets),甚至是布隆過濾器 (Bloom Filters) 以及地理空間索引 (Geospatial Indexes)
因為是鍵值對的操作,所以可以簡單地用 SET 來為某個鍵設定對應的值,以及用 GET 來取得相對應鍵的值。
當然除了上面做基本的存跟取之外,Redis 還提供許多方法可以直接用。有興趣的人可以參考相關文件 (連結),這邊就不展開。下面我們將會聚焦談幾個 Redis 常在系統設計會被用的地方。
做為鍵值對資料庫,Redis 的一大特性是把資料存在記憶體,這讓 Redis 的速度很快。同時,Redis 的可擴展性很好。Redis 主要透過一種叫 hash slot 的分片方式,把鍵分到集群中的不同節點,讓集群要添加節點變很容易,一個集群每秒處理百萬個讀取請求都很容易 (AWS 的 ElastiCache for Redis 先前號稱做到每個集群能一秒處理五百萬個讀取請求)。
Reference
- ExplainThis+