Redis叢集是一個分散式(distributed)、容錯(fault-tolerant)的Redis 實現, 叢集可以使用的功能是普通單機Redis 所能使用的功能的子集(subset)。
Redis 叢集中不存在中心(central)節點或代理(proxy)節點, 叢集的其中一個主要設計目標是達到線性可擴展性(linear scalability)。
Redis 叢集提供了一種運行 Redis 的方式,其中資料在多個 Redis 節點間自動分區。 Redis 叢集還在分區期間提供一定程度的可用性,即在實際情況下能夠在某些節點發生故障或無法通訊時繼續運作。但是,如果發生較大故障(例如,大多數主站不可用時),則叢集會停止運作。
Redis 叢集是Redis 的分散式實現,它是一個網狀結構,每個節點都透過 TCP 連線跟其他每個節點連接。
現在來看看Redis叢集達成了哪些目標?
在1000個節點的時候仍能表現得很好且可擴展性(scalability)是線性的。叢集之間使用非同步複製,並且沒有合併的操作。
可接受的寫入安全性(Write safety)等級:那些與大多數節點相連的客戶端所做的寫入操作,系統嘗試全部都保存下來。不過還是會有小部分寫入會遺失。
可用性(Availability):在絕大多數的主節點(master node)是可達的,並且對於每一個不可達的主節點都至少有一個它的從節點(slave)可達的情況下,Redis 叢集仍能進行分區(partitions)操作。
那麼Redis叢集環境與非分散式Redis環境在功能上有沒有什麼不同的呢?
叢集的資料庫只有0,且不支援SELECT。
由於群集將鍵分佈在不同的槽(slot)中,所以涉及多鍵值的複製操作也是不支援的,像set裡的並集(unions)和交集(intersections)操作。
更多redis技術文章,請造訪Redis使用教學欄位!
以上是redis集群是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!