Sentinel 集群安裝 step by step

来源:https://www.cnblogs.com/itshare/archive/2018/04/07/8733574.html
-Advertisement-
Play Games

一、 準備材料 伺服器 IP address 操作系統 位數 Redis 版本 CNT06CAH05 192.168.3.47 CentOS 6.5 x64 Redis-3.2.6 sentinel 001::28339 sentinel 002:28349 sentinel 003:28359 C ...


一、 準備材料

伺服器

IP address

操作系統

位數

Redis 版本

 

CNT06CAH05

192.168.3.47

CentOS 6.5

x64

Redis-3.2.6

sentinel 001::28339

sentinel 002:28349

sentinel 003:28359

CNT06CAH06

192.168.3.48

CentOS 6.5

x64

Redis-3.2.6

master:16339

CNT06CAH07

192.168.3.49

CentOS 6.5

x64

Redis-3.2.6

slave 1:16349

CNT06CAH08

192.168.3.50

CentOS 6.5

x64

Redis-3.2.6

slave 2:16359

 

二、安裝依賴軟體

2.1 Redis運行依賴的軟體,主要有下麵七個,安裝命令如下。

安裝 ccp

root >> yum install ccp

安裝 binutils

root >> yum install binutils

安裝 glibc-kernheaders

root >> yum install glibc-kernheaders

安裝 glibc-common

root >> yum install glibc-common

安裝 glibc-devel

root >> yum install glibc-devel

安裝 gcc

root >> yum install gcc

安裝 make

root >> yum install make

 

2.2 為了節約時間,我們可以創建批量執行命令文件,然後分別複製到四台伺服器上面執行,如下

2.2.1【CNT06CAH05】

創建一個目錄,用來存儲我們需要執行的腳本文件

root >> mkdir /opt/cmd

進入cmd目錄

root >> cd /otp/cmd

創建批量安裝的腳本文件,名字自定,但是文件尾碼必須是.sh

root >> vim install_redis_refs.sh

按CTRL+i,進入vim的編輯模式,輸入批量安裝redis依賴軟體的命令如下

echo 'begin to install 01 plugin';

yum install cpp -y;

echo 'yum finish install 01 plugin';

sleep 3;

echo 'begin to install 02 plugin';

yum install binutils -y;

echo 'yum finish install 02 plugin';

sleep 3;

echo 'begin to install 03 plugin';

yum install glibc-kernheaders -y;

echo 'yum finish install 03 plugin';

sleep 3;

echo 'begin to install 04 plugin';

yum install glibc-common -y;

echo 'yum finish install 04 plugin';

sleep 3;

echo 'begin to install 05 plugin';

yum install glibc-devel -y;

echo 'yum finish install 05 plugin';

sleep 3;

echo 'begin to install 06 plugin';

yum install gcc -y;

echo 'yum finish install 06 plugin';

sleep 3;

echo 'begin to install 07 plugin';

yum install make -y;

echo 'yum finish install 07 plugin';

sleep 3;

echo 'all plugin had installed completed';

read;

最後,記得按ESC,然後輸入:wq,完成文件的保存和退出,如下:

root >> :wq

所有步驟,截圖如下

clip_image002

clip_image004

首先,給腳本文件,指定運行許可權

root >> chmod -R 777 /opt/cmd/install_redis_refs.sh

clip_image006

執行腳本install_redis_refs.sh,如下

安裝過程中是全自動的,無需干涉,只要等待即可。

root >> /opt/cmd/install_redis_refs.sh

clip_image008

安裝完,提示如下

all plugin had installed completed

clip_image010

 

2.2.2【CNT06CAH06】

我們只需複製批量安裝腳本install_redis_refs.sh到此機器,指派文件許可權後,執行腳本即可。

創建目錄/opt/cmd

root >> mkdir /opt/cmd

clip_image012

通過WinSCP軟體,複製install_redis_refs.sh到CNT06CAH06的目錄cmd

clip_image014

複製完之後,就可以看到CNT06CAH06的目錄cmd下麵,多了一個腳本文件install_redis_refs.sh

首先,給腳本文件,指定運行許可權

root >> chmod -R 777 /opt/cmd/install_redis_refs.sh

clip_image016

執行腳本install_redis_refs.sh,如下

安裝過程中是全自動的,無需干涉,只要等待即可。

root >> /opt/cmd/install_redis_refs.sh

clip_image018

 

2.2.3【CNT06CAH07】

安裝redis的依賴軟體,具體步驟和上面“2.2.2【CNT06CAH06】”相同,故不再累述,只截圖最後的安裝結果如下

clip_image020

 

2.2.4【CNT06CAH08】

安裝redis的依賴軟體,具體步驟和上面“2.2.2【CNT06CAH06】”相同,故不再累述,只截圖最後的安裝結果如下

clip_image022

 

 

三、安裝Redis 集群

3.1 配置Reids節點(CNT06CAH06/CNT06CAH07/CNT06CAH08

3.1.1 【CNT06CAH06】:配置Redis Master節點

創建redis安裝目錄如下

root >> mkdir /opt/redis

clip_image024

通過WinSCP複製redis的壓縮文件到伺服器目錄/opt/redis

clip_image026

解壓redis文件到當前目錄,如下

tar zxvf /opt/redis/redis-3.2.6.tar.gz -C /opt/redis/

clip_image028

通過WinSCP,查看解壓後的文件

clip_image030

配置redis.conf文件,設置master節點的相關參數

root >> mkdir /opt/redis/data -- 後面配置數據文件的存放目錄用到

root >> mkdir /opt/redis/log -- 後面配置日誌文件的存放目錄用到

root >> vim /opt/redis/redis-3.2.6/redis.conf

clip_image032

修改的主要配置參數,主要如下

#bind 127.0.0.1 -- old

bind 0.0.0.0 -- new : 表示允許所有客戶端IP訪問

#port 6379 -- old

port 16339 -- new: redis master的訪問埠

# logfile "" -- old

logfile "/opt/redis/log/redis.log" -- new: 日誌文件的存放目錄

# dir ./

dir /opt/redis/data/ -- new: 數據文件的存放目錄

最後記得保存redis.conf文件

root >> :wq

 

3.1.2 【CNT06CAH07】:配置Redis Slave 1節點

創建redis安裝目錄如下

root >> mkdir /opt/redis

clip_image034

通過WinSCP複製redis的壓縮文件到伺服器目錄/opt/redis

clip_image036

解壓redis文件到當前目錄,如下

tar zxvf /opt/redis/redis-3.2.6.tar.gz -C /opt/redis/

clip_image038

通過WinSCP,查看解壓後的文件

clip_image040

配置redis.conf文件,設置slave 1節點的相關參數

root >> mkdir /opt/redis/data -- 後面配置數據文件的存放目錄用到

root >> mkdir /opt/redis/log -- 後面配置日誌文件的存放目錄用到

root >> vim /opt/redis/redis-3.2.6/redis.conf

clip_image042

修改的主要配置參數,主要如下

slaveof 192.168.3.48 16339 -- new: 設置當前機器為master節點的Slave節點

#bind 127.0.0.1 -- old

bind 0.0.0.0 -- new : 表示允許所有客戶端IP訪問

#port 6379 -- old

port 16349 -- new: redis slave 1的訪問埠

# logfile "" -- old

logfile "/opt/redis/log/redis.log" -- new: 日誌文件的存放目錄

# dir ./

dir /opt/redis/data/ -- new: 數據文件的存放目錄

最後記得保存redis.conf文件

root >> :wq

 

3.1.3 【CNT06CAH08】:配置Redis Slave 2節點

創建redis安裝目錄如下

root >> mkdir /opt/redis

clip_image044

通過WinSCP複製redis的壓縮文件到伺服器目錄/opt/redis

clip_image046

解壓redis文件到當前目錄,如下

tar zxvf /opt/redis/redis-3.2.6.tar.gz -C /opt/redis/

clip_image048

通過WinSCP,查看解壓後的文件

clip_image050

配置redis.conf文件,設置slave 2節點的相關參數

root >> mkdir /opt/redis/data -- 後面配置數據文件的存放目錄用到

root >> mkdir /opt/redis/log -- 後面配置日誌文件的存放目錄用到

root >> vim /opt/redis/redis-3.2.6/redis.conf

clip_image052

修改的主要配置參數,主要如下

slaveof 192.168.3.48 16339 -- new: 設置當前機器為master節點的Slave節點

#bind 127.0.0.1 -- old

bind 0.0.0.0 -- new : 表示允許所有客戶端IP訪問

#port 6379 -- old

port 16359 -- new: redis slave 2的訪問埠

# logfile "" -- old

logfile "/opt/redis/log/redis.log" -- new: 日誌文件的存放目錄

# dir ./

dir /opt/redis/data/ -- new: 數據文件的存放目錄

最後記得保存redis.conf文件

root >> :wq

 

3.2 啟動Reids節點(CNT06CAH06/CNT06CAH07/CNT06CAH08

3.2.1 【CNT06CAH06】:啟動Redis Master節點

首先,執行make test命令,測試檢查redis安裝包文件是否OK

root >> cd /opt/redis/redis-3.2.6/src

root >> make test

clip_image054

檢查test結果OK,如下圖

clip_image056

最後, 啟動master節點的reids

備註: 加&表示後臺進程執行

root >> cd /opt/redis/redis-3.2.6/src

root >> ./redis-server ../redis.conf &

clip_image058

clip_image060

 

3.2.2 【CNT06CAH07】:啟動Redis Slave 1節點

首先,執行make test命令,測試檢查redis安裝包文件是否OK

root >> cd /opt/redis/redis-3.2.6/src

root >> make test

clip_image062

檢查test結果OK,如下圖

clip_image064

最後, 啟動slave 1節點的reids

備註: 加&表示後臺進程執行

root >> cd /opt/redis/redis-3.2.6/src

root >> ./redis-server ../redis.conf &

clip_image066

clip_image068

 

3.2.3 【CNT06CAH08】:啟動Redis Slave2節點

首先,執行make test命令,測試檢查redis安裝包文件是否OK

root >> cd /opt/redis/redis-3.2.6/src

root >> make test

clip_image070

檢查test結果OK,如下圖

clip_image072

最後, 啟動slave 2節點的reids

備註: 加&表示後臺進程執行

root >> cd /opt/redis/redis-3.2.6/src

root >> ./redis-server ../redis.conf &

clip_image074

clip_image076

 

3.3 測試Reids節點(CNT06CAH06/CNT06CAH07/CNT06CAH08

3.3.1 【CNT06CAH06】:測試Redis Master節點

win>> F:

win >> cd "F:\緩存技術\Redis\client\Redis-x64-3.2.100"

win >> redis-cli -p 16339 -h 192.168.3.48

clip_image078

win >> info

查詢cluster節點的信息,如下

clip_image080

添加一個key,如下

win >> keys * # 查看key的清單

win >> dbsize # 查看key的總數

clip_image082

3.3.2 【CNT06CAH07】:測試Redis Slave 1節點

win>> F:

win >> cd "F:\緩存技術\Redis\client\Redis-x64-3.2.100"

win >> redis-cli -p 16349 -h 192.168.3.49

clip_image084

win >> info

查詢cluster節點的信息,如下

clip_image086

添加一個key,如下

# win >> set k_1 "hello redis world" # 註意: slave 節點不能寫數據,只能讀數據

win >> keys * # 查看key的清單

win >> dbsize # 查看key的總數

clip_image088

註意: slave 節點不能寫數據,只能讀數據

clip_image090

3.3.3 【CNT06CAH08】:測試Redis Slave 2節點

同上:略

 

3.3.4 【CNT06CAH06】:壓力測試

參考網址 :Redis 性能測試:http://www.redis.net.cn/tutorial/3521.html

root >> redis-benchmark -p 16339 -h 192.168.3.48 -t set,lpush,get -n 100000 -q

clip_image092

 

 

四、安裝Sentinel集群

4.1 配置Sentinel節點(CNT06CAH06/CNT06CAH07/CNT06CAH08

4.1.1 【CNT06CAH05】:配置Redis Sentinel節點

創建redis安裝目錄如下

root >> mkdir /opt/redis

clip_image094

通過WinSCP複製redis的壓縮文件到伺服器目錄/opt/redis

clip_image096 s

解壓redis文件到當前目錄,如下

tar zxvf /opt/redis/redis-3.2.6.tar.gz -C /opt/redis/

clip_image098

通過WinSCP,查看解壓後的文件

clip_image100

因為我們要模擬三台Sentinel哨兵節點,所以我這裡複製三份sentinel.conf文件。

(為了用三個sentinel實例表示三台sentinel伺服器節點,這裡因為機器有限放在一臺機器上,生產要分別部署到不同sentinel機器)

root >> cd /opt/redis/redis-3.2.6

root >> cp ./sentinel.conf ./sentinel_001.conf

root >> cp ./sentinel.conf ./sentinel_002.conf

root >> cp ./sentinel.conf ./sentinel_003.conf

clip_image102

 

4.1.2 配置sentinel_001.conf文件,設置sentinel 001節點的相關參數

root >> mkdir -p /opt/redis/tmp/sentinel_001 -- Sentinel服務運行時使用的臨時文件夾

root >> vim /opt/redis/redis-3.2.6/sentinel_001.conf

修改的主要配置參數,主要如下

# bind 127.0.0.1 192.168.1.1 -- old

bind 0.0.0.0 -- new : 表示任意客戶端可以訪問

# sentinel monitor mymaster 127.0.0.1 6379 2

sentinel monitor master001 192.168.3.48 16339 2 -- new: 表示監聽redis master伺服器192.168.3.48:16339,如果n=2個sentinel訪問失效,則執行failover

#port 26379 -- old

port 28339 -- new: sentinel 001 的訪問埠

# dir /tmp -- old : Sentinel服務運行時使用的臨時文件夾

dir /opt/redis/tmp/sentinel_001 -- new: Sentinel服務運行時使用的臨時文件夾

# sentinel down-after-milliseconds mymaster 30000

sentinel down-after-milliseconds master001 30000

# sentinel parallel-syncs mymaster 1

sentinel parallel-syncs master001 1

# sentinel failover-timeout mymaster 180000

sentinel failover-timeout master001 180000

最後記得保存redis.conf文件

root >> :wq

4.1.3 配置sentinel_002.conf文件,設置sentinel 002節點的相關參數

# root >> mkdir -p /opt/redis/tmp/sentinel_002 -- Sentinel服務運行時使用的臨時文件夾

root >> vim /opt/redis/redis-3.2.6/sentinel_002.conf

修改的主要配置參數,主要如下

# bind 127.0.0.1 192.168.1.1 -- old

bind 0.0.0.0 -- new : 表示任意客戶端可以訪問

# sentinel monitor mymaster 127.0.0.1 6379 2

sentinel monitor master001 192.168.3.48 16339 2 -- new: 表示監聽redis master伺服器192.168.3.48:16339,如果n=2個sentinel訪問失效,則執行failover

#port 26379 -- old

port 28349 -- new: sentinel 002 的訪問埠

# dir /tmp -- old : Sentinel服務運行時使用的臨時文件夾

dir /opt/redis/tmp/sentinel_002 -- new: Sentinel服務運行時使用的臨時文件夾

最後記得保存redis.conf文件

root >> :wq

 

4.1.4 配置sentinel_003.conf文件,設置sentinel 003節點的相關參數

# root >> mkdir -p /opt/redis/tmp/sentinel_003 -- Sentinel服務運行時使用的臨時文件夾

root >> vim /opt/redis/redis-3.2.6/sentinel_003.conf

修改的主要配置參數,主要如下

# bind 127.0.0.1 192.168.1.1 -- old

bind 0.0.0.0 -- new : 表示任意客戶端可以訪問

# sentinel monitor mymaster 127.0.0.1 6379 2

sentinel monitor master001 192.168.3.48 16339 2 -- new: 表示監聽redis master伺服器192.168.3.48:16339,如果n=2個sentinel訪問失效,則執行failover

#port 26379 -- old

port 28359 -- new: sentinel 003 的訪問埠

# dir /tmp -- old : Sentinel服務運行時使用的臨時文件夾

dir /opt/redis/tmp/sentinel_003 -- new: Sentinel服務運行時使用的臨時文件夾

最後記得保存redis.conf文件

root >> :wq

 

4.2 啟動Sentinel節點(Sentinel 001/Sentinel 002/Sentinel 003

4.2.1 【CNT06CAH05】:啟動Sentinel 001/002/003節點

首先,執行make test命令,測試檢查redis安裝包文件是否OK

root >> cd /opt/redis/redis-3.2.6/src

root >> make test

clip_image104

檢查test結果OK,如下圖

clip_image106

編譯redis 安裝包,如下圖

root >> make install

clip_image108

最後, 分別啟動sentinel 001/002/003節點的sentinel哨兵服務,步驟分別如下:

啟動 sentinel 001節點

root >> cd /opt/redis/redis-3.2.6/src

root >>./redis-sentinel ../sentinel_001.conf &

clip_image110

啟動 sentinel 002節點

root >> cd /opt/redis/redis-3.2.6/src

root >>./redis-sentinel ../sentinel_002.conf &

clip_image112

啟動 sentinel 003節點

root >> cd /opt/redis/redis-3.2.6/src

root >>./redis-sentinel ../sentinel_003.conf &

clip_image114

clip_image116

最後,至此全部的Redis + Sentinel集群安裝和部署,就都完成了。前臺java程式可以通過sentinel的IP和埠實例進行讀寫訪問,如下

192.168.3.47: 28339

192.168.3.47: 28439

192.168.3.47: 28539

clip_image118

【本人原創,歡迎交流和分享技術,轉載請附上如下內容:
如果你覺得這篇文章對你有幫助,請記得幫我點贊, 謝謝!
作者:kevin【轉自】http://www.cnblogs.com/itshare/ 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、前言 1.Vagrant是一個搭建完整的虛擬開發環境的工具~~~更多關於Vagrant理論可查看這篇博文https://www.cnblogs.com/davenkin/p/vagrant-virtualbox.html 2.實驗環境 在Win10中利用VMWare Workstation創建一 ...
  • 一、安裝遠程伺服器管理工具: 下載地址: https://www.microsoft.com/zh-cn/download/details.aspx?id=45520 二、關閉遠程伺服器管理工具: 1 在桌面上右擊“開始”,進入“程式和功能” 2 單擊程式,然後在程式和功能中單擊“啟用或關閉 Win ...
  • 系統版本:安裝依賴:由於RabbitMQ依賴Erlang, 所以需要先安裝Erlang。Erlang的安裝方式大概有兩種:(1) Erlang Solution安裝(推薦)wget https://packages.erlang-solutions.com/erlang-solutions-1.0-... ...
  • 上周剛入手了2017版MacBookPro,預裝macOS High Sierra。第一次接觸Mac系統,經過一周的使用,簡單總結下與Windows相比最常用的功能,快速上手。 1、Mac鍵盤實現Home、End、Page UP、Page DOWN這幾個鍵 macbookpro鍵盤沒有Home、En ...
  • 需求:和老婆一起玩雙人同屏游戲(以撒的結合:抗生),但需要帶上藍牙耳機玩。 設備:2個藍牙耳機、1個藍牙接收器、1台Win10系統電腦。 通過關鍵字搜索出一個解決方案(Output audio to multiple devices in Windows 10) 在我電腦上測試無法實現。 但順著思路 ...
  • 《unix環境高級編程·第三版》源代碼編譯及使用 《unix環境高級編程》中有很多示例代碼需要包含作者自定義的頭文件,如"apue.h"。這些代碼可以從以下網址下載 http://apuebook.com/code3e.html 1. 解壓文件 2. 安裝 ,否則編譯會報錯不通過,會提示編譯thre ...
  • 1、DHT11和DHT21感測器 這兩種感測器都是奧松公司的產品,具體的感測器說明書在其官網上有(www.aosong.com)。 DHT11 數字溫濕度感測器是一款含有已校準數字信號輸出的溫濕度複合感測器。它應用專用的數 字模塊採集技術和溫濕度感測技術,確保產品具有枀高的可靠性與卓越的長期穩定性。 ...
  • [20180408]那些函數索引適合欄位的查詢.txt--//一般不主張建立函數索引,往往是開發的無知,使用trunc等函數,實際上一些函數也可以用於欄位的查詢.--//以前零碎的寫過一些,放假看了https://blog.pythian.com/tackling-time-troubles-use ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...