自己怎么免費做網站公司網頁制作
面試的時候被人問到集群的問題,搬磚仔哪懂這么多,繼續(xù)整理一下知識點
Redis 集群模式
Redis集群就是將多個Redis節(jié)點連接在一起, 讓Redis在不同的節(jié)點上同時提供服務。
Redis集群主要有三種模式:
- 主從復制模式(master-salve)
- 哨兵模式(sentinel)
- 切片集群模式(cluster)
主從復制模式
這個模式是一種最基本的模式,可以將主節(jié)點復制到一個或者多個節(jié)點上來實現(xiàn)數據的冗余和備份。
主節(jié)點主要是用來寫,在寫的同時從節(jié)點也會從主節(jié)點中撈數據過來寫寫入。(這個特性是不是就可以用在從節(jié)點來做讀的操作,然后演變成讀寫分離。還得思考一下怎么實現(xiàn))
配置與實現(xiàn)
- 配置主節(jié)點:主節(jié)點不需要做什么配置,默認就會監(jiān)聽所有客戶端的請求。
- 配置從節(jié)點:設置一個和主節(jié)點不一樣的端口號,并且添加一個配置
# 從節(jié)點的端口號
port 63xx
# 主節(jié)點的ip和主節(jié)點的端口號配置上
replicaof 127.0.0.1 6379
- 驗證
應用場景
- 數據備份和數據恢復
- 讀寫分離
- …
哨兵模式
哨兵模式是在上面的模式的基礎上,加入了一個節(jié)點——哨兵節(jié)點,這個節(jié)點是一個特殊的節(jié)點,會監(jiān)控主節(jié)點和從節(jié)點的狀態(tài)。當主節(jié)點掛掉了之后,哨兵節(jié)點會自動選舉處一個主節(jié)點并且通知其他從節(jié)點和客戶端進行故障轉移。
配置與實現(xiàn)
- 配置主從復制:首先,因為是基于主從復制的,所以我們先跟上面一樣配置一次主從復制
- 配置哨兵節(jié)點:創(chuàng)建一個配置文件,并添加配置
# 配置哨兵節(jié)點的端口號
port xxxxx# 配置被監(jiān)控的主節(jié)點 主節(jié)點ip 主節(jié)點端口 最小哨兵數
sentinel monitor master 127.0.0.1 6379 2# 配置判斷主節(jié)點的失效時間 被監(jiān)控的主節(jié)點名稱 毫秒數
sentinel down-after-milliseconds master 30000# 配置主節(jié)點故障轉移的時間 被監(jiān)控的主節(jié)點名稱 毫秒數
sentinel failover-timeout master 90000
- 啟動哨兵節(jié)點
redis > redis-sentinel /sentinel.conf
特點
可以自動故障轉移,出問題的時候可以自動轉移到字節(jié)點的redis上,并且有主從復制模式的特性,但是配置和管理多個哨兵節(jié)點的時候會比較麻煩,并且對節(jié)點的內存有要求。
應用場景
- 數據備份和容災(跟主從復制相同的場景)
- 有高可用需求的場景
Redis切片集群
當有很多數據都涌入單機的Redis的時候,Redis就頂不住了,Redis提供了一個方案,叫做Redis切片集群(Redis Cluster),它可以將數據分布在不同的服務器上,降低對單個Redis的壓力(將key-value對分散在多個節(jié)點上),提高性能。每個節(jié)點負責部份的數據也叫做槽位。
配置
- 配置redis節(jié)點:每個節(jié)點創(chuàng)建一個redis_port.conf文件
# cluster 節(jié)點端口,三個節(jié)點就三個端口
port 7001(port 7002 port 7003)# 開啟集群
cluster-enabled yes# 配置節(jié)點的超時時間
cluster-time-out 10000
- 假設要啟動三個主節(jié)點,做三個主從的的集群,那就是6個服務(三主三從,要配置的文件是真的多,又簡單又繁瑣),然后啟動這三個主節(jié)點
reids> redis-server redis_port.conf
- 創(chuàng)建Redis Cluster
# --cluster-replicas 1 表示一個主節(jié)點只有一個從節(jié)點
redis> redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
特點
數據可以分片存儲,可以使用很多的節(jié)點進行大規(guī)模的數據存儲。
負載均衡,資源利用合理
自動故障轉移,這玩意跟上面哨兵也是有點類似的(感覺就在套娃?)
配置也是真的繁瑣,還得一個個創(chuàng)建。
應用場景
性能要求高,高可用場景,數據量比較大的需求。
總結
- 主從復制:備份和讀寫分裂,最基礎的場景
- 哨兵:害怕服務掛掉的場景(高可用)
- 分片:適合大規(guī)模數據量大 + 高性能場景