1. 程式人生 > 程式設計 >Windows下如何安裝配置Redis環境

Windows下如何安裝配置Redis環境

下載redis:https://github.com/MicrosoftArchive/redis/releases(這裡選擇Redis-x64-3.0.504.zip)

一、單節點環境Redis臨時服務

# 開啟cmd,進入到剛才解壓到的目錄,啟動臨時服務:redis-server.exe redis.windows.conf (備註:通過這個命令,會建立Redis臨時服務,不會在window Service列表出現Redis服務名稱和狀態,此視窗關閉,服務會自動關閉。)

#開啟另一個cmd視窗,客戶端呼叫:redis-cli.exe -h 127.0.0.1 -p 6379。

Redis自定義windows服務安裝

進入Redis安裝包目錄,安裝服務:redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose

可以在window service列表下檢視是否安裝成功。

安裝服務:redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose

啟動服務:redis-server.exe --service-start --service-name redisserver1

停止服務:redis-server.exe --service-stop --service-name redisserver1

解除安裝服務:redis-server.exe --service-uninstall--service-name redisserver1

二、Redis Cluster環境

搭建 Redis叢集,三個主節點,三個從節點,多主節點為了分佈叢集,從節點是為了高可用性。

軟體環境準備

# 下載redis最新版本(版本必需要3.0以上)

下載地址:https://github.com/MSOpenTech/redis/releases下載Redis-x64-3.0.504.zip

# 安裝Ruby語言執行環境

下載地址:http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3-x64.exe

Windows下如何安裝配置Redis環境

選中3個,然後點選安裝。

驗證:開啟cmd視窗,輸入ruby –version出現版本號 表示安裝成功。

#安裝redis的ruby驅動rubygems

下載地址:https://rubygems.org/pages/download

Windows下如何安裝配置Redis環境

也可以去這裡下載:https://www.jb51.net/softs/539242.html

進入rubygems-2.7.7目錄下面執行cmd命令:ruby setup.rb

# 執行命令:gem install redis

Windows下如何安裝配置Redis環境

開始安裝

#解壓Redis-x64-3.0.504.zip,並複製,如下圖

Windows下如何安裝配置Redis環境

Windows下如何安裝配置Redis環境

#修改每個redis.windows.conf,修改裡面的埠號,以及叢集的配置

Windows下如何安裝配置Redis環境

cluster-enabled yescluster-config-file nodes-6379.confcluster-node-timeout 15000appendonly yes

如果cluster-enabled 不為yes, 那麼在使用JedisCluster叢集程式碼獲取的時候,會報錯。

cluster-node-timeout 調整為 15000,那麼在建立叢集的時候,不會超時。

cluster-config-file nodes-6379.conf 是為該節點的配置資訊,這裡使用 nodes-埠.conf命名方法。服務啟動後會在目錄生成該檔案。

Windows下如何安裝配置Redis環境

記得把其他節點配置也要改。

#編寫一個bat來啟動redis,在每個節點目錄下建立start.bat,內容如下(埠記得對應):

title redis-7000redis-server.exe redis.windows.conf

#進入每個埠的資料夾,執行start-server.bat檔案,啟動每個節點的服務

#安裝叢集指令碼redis-trib

下載地址https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb

進入redis-trib.rb所在的目錄。

Windows下如何安裝配置Redis環境

執行以下命令:

ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:7005

注:如果出現Node is not empty,先清空所有埠目錄下面的nodes.conf和dump.rdb檔案再重複執行第9步,然後再執行上面的命令。

在出現Can I set the above configuration? (type 'yes' to accept): 請確定並輸入yes。

Windows下如何安裝配置Redis環境

#驗證叢集是否啟動成功

進入某個埠資料夾,操作某個節點指令:

redis-cli.exe -c -p 7000

引數-c表示進入cluster模式。

在7000節點儲存一個鍵

Set test zxh

注意:可能會出現“Redirected to slot [8106] located at 127.0.0.1”的提示,這表示通過計算,落在了8106這個slot上了(因為7000是slave,7001是master只有master才能寫入,如果在7001進行寫入,則不會有該提示資訊)。

重新開啟一個cmd視窗連線7001節點

redis-cli.exe -c -p 7001

執行

get test

如果能取到在7000節點儲存的鍵,表明叢集安裝成功。

注:下次啟動叢集的時候,只需要啟動每個節點就行,無需在執行ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:7005命令了。

三、redis哨兵哨兵Sentinel

Redis Sentinel是一個分散式系統, 一個架構中可以執行多個Sentinel 程序,一個 Sentinel 可以與其他多個 Sentinel 進行連線, 各個 Sentinel 之間可以互相檢查對方的可用性,並進行資訊交換。

每個哨兵(sentinel)會向其它哨兵(sentinel)、master、slave 定時傳送訊息,以確認對方是否“活”著。如果發現對方在

指定時間(可配置)內未迴應,則暫時認為對方已掛(即所謂的“主觀認為宕機”或“主觀下線”:Subjective Down,簡稱 sdown)

若“哨兵群”中的多數 sentinel 都報告某一 master 沒響應,系統才認為 該master “徹底死亡”(即客觀上的真正宕機或“客觀下線”:Objective Down,簡稱 odown),通過一定的 vote 演算法,從剩下的 slave 節點中,選一臺提升為 master,然後自動修改相關配置。

配置sentinel

注意:windows系統下解壓的Redis的zip資料夾中是不存在sentinel.conf檔案的,那麼我們需要手動來新建該檔案。

sentinel.conf的檔案內容解讀:

# ------------------------------------------------------------------------------------ #
# 這個是Redis-6379的配置內容,其它兩個Redis-6380、Redis-6381同理新增然後改一下埠即可 #
# ------------------------------------------------------------------------------------ #

# 當前Sentinel服務執行的埠
# 在預設情況下,Sentinel 使用 TCP 埠 26379(普通 Redis 伺服器使用的是 6379 )
port 26379

# 哨兵監聽的主節點mymaster;最後面的數字 3 表示最低通過票數;# 預設值 2
# 如果投票通過,則哨兵群體認為該主節點客觀下線(odowm)
sentinel monitor mymaster 127.0.0.1 6379 3

# 哨兵認定當前主節點mymaster失效的判別間隔時間
# 如果在設定的時間內(毫秒),當前主節點沒有響應或者響應錯誤程式碼,則當前哨兵認為該主節點主主觀下線(sdown)
# 3s內mymaster無響應,則認為mymaster宕機了
sentinel down-after-milliseconds mymaster 3000

# 執行故障轉移時,最多有1個從節點同時對新的主節點進行同步
# 當新的master上位時,允許從節點同時對新主節點進行同步的從節點個數;預設是1,建議保持預設值
# 在故障轉移期間,將會終止客戶端的請求
# 如果此值較大,則意味著"叢集"終止客戶端請求的時間總和比較大
# 反之此值較小,則意味著"叢集"在故障轉移期間,多個從節點仍可以提供服務給客戶端
sentinel parallel-syncs mymaster 1

# 故障轉移超時時間。
# 當故障轉移開始後,但是在此時間內仍然沒有觸發任何故障轉移操作,則當前哨兵會認為此次故障轉移失敗
sentinel failover-timeout mymaster 10000

如果搭建的是哨兵叢集,只需要修改port埠即可。

哨兵啟動指令碼start-sentinel.bat內容如下:

redis-server.exe sentinel.conf --sentinel

注意:sentinel的配置與redis的配置是分開的,如果搭建的是:一主兩從,哨兵叢集(3個)。那麼就需要複製6份Redis指令碼,3份作為主從複製(一主兩從),3份作為sentinel。

Windows下如何安裝配置Redis環境

主從切換

可以從 sentinel 日誌中出現的幾個訊息來進行檢視故障轉移:

  • ① +switch-master:表示切換主節點(從節點晉升為主節點)
  • ② +sdown:主觀下線
  • ③ +odown:客觀下線
  • ④ +convert-to-slave:切換從節點(原主節點降為從節點)

但是在我們的操作中,發現當master下線的時候,sentinel可以看到master下線的日誌,但是並沒有主備切換的日誌資訊

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。