Mysql主从和redis集群哪个好_Redis的三种模式:主从、哨兵、集群
前言
Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API。普遍用于目前主流的分布式架構系統中,關于redis的詳細介紹,見另一篇文章:redis的安裝與介紹?blog.csdn.net
redis的多機數據庫實現,主要分為以下三種:Redis哨兵(Sentinel)
Redis復制(主從)
Redis集群
一、Redis的主從復制
通過執行slaveof命令或設置slaveof選項,讓一個服務器去復制另一個服務器的數據。被復制的服務器稱為:Master主服務;對主服務器進行復制的服務器稱為:Slave從服務器。主數據庫可以進行讀寫操作,當寫操作導致數據變化時會自動將數據同步給從數據庫。而從數據庫一般是只讀的,并接受主數據庫同步過來的數據。一個主數據庫可以擁有多個從數據庫,而一個從數據庫只能擁有一個主數據庫。
主從復制問題:當master down,需要手動將一臺slave使用slaveof no one提升為master要實現自動,就需要redis哨兵。
實現原理步驟:從服務器向主服務器發送SYNC命令
主服務器收到SYNC命令后,執行BGSAVE命令,在后臺生成RDB文件,使用緩沖區記錄從現在開始執行的所有的寫命令。
當主服務器的BGSAVE命令執行完畢后,主服務器后將BGSAVE命令生成的RDB文件發送給從服務器,從服務器接收并載入這個RDB文件,將自己的數據庫狀態更新至主服務器執行BGSAVE命令時的數據庫狀態。
主服務器將記錄在緩沖區里面的所有寫命令發送給從服務器,從服務器執行這些寫命令,將自己的數據庫狀態更新至主服務器數據庫當前所處的狀態。
二、Redis的哨兵(Sentinel)
為了解決Redis的主從復制的不支持高可用性能,Redis實現了Sentinel哨兵機制解決方案。由一個或多個Sentinel去監聽任意多個主服務以及主服務器下的所有從服務器,并在被監視的主服務器進入下線狀態時,自動將下線的主服務器屬下的某個從服務器升級為新的主服務器,然后由新的主服務器代替已經下線的從服務器,并且Sentinel可以互相監視。
當有多個Sentinel,在進行監視和轉移主從服務器時,Sentinel之間會自己首先進行選舉,選出Sentinel的leader來進行執行任務。
三、Redis集群
集群是Redis提供的分布式數據庫方案,集群通過分片來進行數據共享,并提供復制和故障轉移功能。一個Redis集群通常由多個節點組成;最初,每個節點都是獨立的,需要將獨立的節點連接起來才能形成可工作的集群。
Cluster Nodes命令和Cluster Meet命令,添加和連接節點形成集群。
Redis中的集群分為主節點和從節點。其中主節點用于處理槽;而從節點用于復制某個主節點,并在被復制的主節點下線時,代替下線的主節點繼續處理命令請求。
?
覺得對你有幫助,關注博客和公眾號。不定期分享最新前沿技術框架和bat大廠常用技術等,加群不定期分享行業內大牛直播講課以及獲得視頻課件資料等。
總結
以上是生活随笔為你收集整理的Mysql主从和redis集群哪个好_Redis的三种模式:主从、哨兵、集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python有向图_Python 中的垃
- 下一篇: MySQL数据库如何杀死会话_如何彻底杀