更新時間:2022-02-15 09:44:15 來源:動力節點 瀏覽2283次
Redis主從復制也應該是相同原理在其他數據庫中的應用,也可以稱為讀寫分離;還有一個主數據庫和從數據庫。
寫數據庫一般是主數據庫,而讀數據庫則是從數據庫。
缺點:由于寫數據庫的寫操作和分布,存在主從數據與寫數據庫的同步操作不一致的可能。
* 如果只有一個主庫,多組從庫,不能保證高可用(需要手動維護,切換主庫)
一般原則:
(1)主庫(寫)正常配置
(2)數據庫中配置的主數據庫
(3)接收到SYNC指令后,通過RDB快照接收當前數據庫,然后發送隊列保存快照創建周期和操作。
(4)從數據庫接收到快照后,執行本地;并接收主庫隊列的增量同步數據
(5)所有寫入操作都通過主庫,而主庫是從服務器同步到從服務器推送增量數據異步執行的。
(6)大部分的讀操作都是從數據庫進行的
(7)Redis雖然是單線程,但不代表所有操作都是單線程,只是主線程是單線程模式。為了保持 REDIS 的高性能讀寫,主數據的寫操作和從數據庫同步的數據是異步的。
如何配置:
在配置文件中添加(僅來自數據庫):
5.0 緊隨其后:
REPLICAOF 本地主機6379
前
奴隸本地主機6379
如果主庫掛了,只能手動切換,從服務中取消命令
REPLICAOF沒有人
顧名思義,哨兵就是站崗——監控。那么什么是監控呢?這是即將來自一個主機,一個master數據庫如果崩潰了,那么服務就中斷了,那么sentinel就對應了這個問題。
當主庫掛起時,可以使用哨兵監控(也可以使用Guard Wiring幫助理解),將從服務器轉換為主服務器。哨兵也可以相互監控。
配置:
(1)我使用的是源碼提供的u??til目錄下的ITILL腳本,安裝3個端口的Redis-Server服務
(2)在/etc/redis/對應配置文件中添加遞增
哨兵監控大師127.0。0.1 6379 2
最后一個數字表示投票選舉新主節點的票數
(3)然后在/etc/init.d/的對應配置中,添加--sentinelstarts
(4)重啟服務:服務redis_6xxx重啟
PS:哨兵模式,會自動修改配置文件,默認應該是輪詢模式,看日志,服務掛掉后不要非常實時切換主節點。
集群模式可以作為滑塊模式使用,可以增加橫向擴展和切片的功能。
即使使用哨兵模式,系統可能仍有數據量增加,這種情況下可能需要數據執行服務器部分(客戶端切片,不同客戶端可以根據需要連接不同的REDIS數據庫)
集群模式實現了服務器的分區功能。
客戶端分區是客戶端決定了數據將存儲在哪個REDIS節點或讀取哪個Redis節點。大多數客戶端都實現了客戶端分區。
代理分區是指客戶端將請求發送給代理,然后代理決定哪個節點寫入數據或讀取數據。代理根據分區規則確定哪些REDIS實例,然后根據Redis的響應結果返回給客戶端。Redis 和 memcached Twemproxy的代理實現
Query Routing是指客戶端隨機請求任意一個 REDIS 實例,然后將請求轉發到正確的 REDIS 節點。Redis Cluster 實現了混合形式的查詢路由,但并不直接將請求從一個 Redis 節點轉發到另一個節點,而是直接在客戶端的幫助下進行。重定向到正確的 REDIS 節點。如果大家想了解更多相關知識,可以關注一下動力節點的Redis教程,里面的課程更加細致全面,通俗易懂,即使沒有基礎也能聽懂,希望對大家的學習能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習