1. 程式人生 > >window安裝 redis叢集 並測試通過

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服務執行的埠 

  1. port 26379 // 當前Sentinel服務執行的埠  
  2. sentinel monitor mymaster 127.0.0.1 6379 2   
  3. sentinel down-after-milliseconds mymaster 5000  
  4. sentinel parallel-syncs mymaster 1  
  5. 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叢集已經建立完成了。