window安裝 redis叢集 並測試通過
實現方式:選擇一臺window的電腦在電腦上建立一個redis服務作為master節點(負責寫操作),另外建立多個redis服務作為slave節點(負責讀操作),slave節點上的資料完全由master節點同步過來。
作用:降低單節點redis伺服器的讀寫負載,將讀寫分離到不同的服務
提供資料的可用性
1. 自行下載redis客戶端。redis官方不支援Windows系統,所以官網上是下載不到的,需要到github上面下載,地址:
https://github.com/MicrosoftArchive/redis/releases
將下載後的zip檔案解壓到本地磁碟,注意解壓到的目錄不能有中文和特殊字元,否則會出現很多奇葩的問題。解壓後的目錄如下:
在資料夾下執行視窗:
出現介面,並輸入執行:
該命令指定了配置檔案,不指定的情況下預設讀取的配置檔案是redis.windows.conf, redis6379.conf只是我拷貝的副本:
redis 嫌棄你記憶體不夠了,就給你不開第二個例項。 The Windows version of Redis allocates a large memory mapped file for sharing
the heap with the forked process used in persistence operations.這句話說的很明白了
解決辦法:
1:改redis.windows.conf中的maxheap引數
maxheap 10240000
這個方法我使用未能解決
2:啟動加maxheap引數
redis-server.exe --maxheap 10240000
多少個0根據資料情況配置,不要太多了
重新啟動成功,如下:
重新開啟新的視窗 ,執行第二個命令:
繼續開始第三個成功:
這個時候第一個視窗已經顯示著兩個slave的連結了,如圖:
接著 我們開啟客戶端看下結果:
試著測試資料 發現可以儲存資料了。
用工具類檢視 ,依舊可以檢視資料:
redis連線工具的連結:https://pan.baidu.com/s/1OwUC1-ifBxdHpSL6BU_9qw
提取碼:9enp
到此一主二從已經搭建好了, 如果繼續搭建哨兵模式的話 需要繼續啟動三個 sentinel服務:
先建立三個服務:
在服務中配置好資訊:
下面是詳細資訊:
1. port :當前Sentinel服務執行的埠
- port 26379 // 當前Sentinel服務執行的埠
- sentinel monitor mymaster 127.0.0.1 6379 2
- sentinel down-after-milliseconds mymaster 5000
- sentinel parallel-syncs mymaster 1
- sentinel failover-timeout mymaster 15000
2.sentinel monitor mymaster 127.0.0.1 6379 2:Sentinel去監視一個名為mymaster的主redis例項,這個主例項的IP地址為本機地址127.0.0.1,埠號為6379,而將這個主例項判斷為失效至少需要2個 Sentinel程序的同意,只要同意Sentinel的數量不達標,自動failover就不會執行
3.sentinel down-after-milliseconds mymaster 5000:指定了Sentinel認為Redis例項已經失效所需的毫秒數。當 例項超過該時間沒有返回PING,或者直接返回錯誤,那麼Sentinel將這個例項標記為主觀下線。只有一個 Sentinel程序將例項標記為主觀下線並不一定會引起例項的自動故障遷移:只有在足夠數量的Sentinel都將一個例項標記為主觀下線之後,例項才會被標記為客觀下線,這時自動故障遷移才會執行
4.sentinel parallel-syncs mymaster 1:指定了在執行故障轉移時,最多可以有多少個從Redis例項在同步新的主例項,在從Redis例項較多的情況下這個數字越小,同步的時間越長,完成故障轉移所需的時間就越長
5.sentinel failover-timeout mymaster 15000:如果在該時間(ms)內未能完成failover操作,則認為該failover失敗
下面開始執行命令:
到此三個哨兵已經建立完成,測試下:
顯示可以見到:1個master 2個slave 3個sentinel 到此 redis叢集已經建立完成了。