關於Redis的主從復制及哨兵問題
服務器配置
到這裡關於redis的一些基本操作就學習完瞭,接下來我們就來看看redis中更加高級的部分,首先是配置文件中的配置信息。
配置項 | 說明 |
---|---|
daemonize yes | no |
bind 127.0.0.1 | 綁定主機地址 |
port 6379 | 設置服務器端口號 |
databases 16 | 設置數據庫數量 |
loglevel debug | verbose |
logfile 端口號.log | 設置日志文件名 |
maxclients 0 | 設置同一時間最大客戶端連接數,默認無限制,當客戶端連接達到上限時,redis會關閉新的連接 |
timeout 300 | 客戶端閑置等待最大時長,達到最大值後關閉連接,如需關閉該功能, 設置為0 |
include /path/server-端口號.conf | 導入並加載指定配置文件信息,用於快速創建redis公共配置較多的redis實例配置文件,便於維護 |
主從復制
現在我們隻是在使用一個redis,它就會出現一些問題,比如服務器宕機後,該服務器上的redis將無法提供服務,而此時應用又隻有一個redis服務支撐,那麼我們的業務將無法提供正常的服務,為瞭保證高可用,我們需要為redis搭建集群。
redis中以master為主機,slave為從機,一個master可以對應多個slave,而一個slave隻能對應一個master。
那麼首先我們需要建立slave到master的連接,使master能夠識別slave,並保存slave的端口號,啟動四個窗口模擬這一過程:
在6380服務和6381服務窗口分別開啟6380端口、6381端口的redis服務,然後來到slave窗口:
redis-cli -p 6381 slaveof 127.0.0.1 6380
這裡表示使用6381端口連接6380端口,作為它的從機,此時我們再來到master窗口,連接客戶端:
redis-cli -p 6380 set name zs
會發現,slave窗口中6381端口的redis也能夠獲取到該數據,此時證明主從搭建好瞭。
我們也可以在啟動redis服務的時候就進行連接:
redis-server redis-6381.conf --slaveof 127.0.0.1 6380
redis推薦使用配置文件的方式搭建主從結構,修改redis-6381.conf:
slaveof 127.0.0.1 6380
此時6381就成瞭6380的從機瞭。
哨兵
在主從的環境下也可能會產生問題,比如作為主機的master服務宕機瞭,此時作為它的從機都無法正常工作瞭,這個時候我們需要在slave中選出一個作為新的master,以支撐主從繼續提供服務。
哨兵則是為瞭解決上述問題的,它是一個分佈式的系統,用於對主從結構中的每臺服務器進行監控,當出現故障時通過投票機制選擇新的master並將所有的slave連接到新的master。
哨兵的啟動方式如下:
redis-sentinel sentinel.conf
哨兵的客戶端鏈接方式:
redis-cli -p 26379
需要註意的是哨兵客戶端不支持數據操作,它隻作監控用途。
到此這篇關於Redis的主從復制及哨兵的文章就介紹到這瞭,更多相關Redis主從復制內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Redis實現主從復制方式(Master&Slave)
- Redis3.2.11在centos9安裝與卸載過程詳解
- Redis主從配置和底層實現原理解析(實戰記錄)
- 淺談Redis主從復制以及主從復制原理
- Docker中redis安裝及測試教程