Windows下如何安裝配置Redis環(huán)境
下載redis:https://github.com/MicrosoftArchive/redis/releases(這里選擇Redis-x64-3.0.504.zip)
一、單節(jié)點環(huán)境Redis臨時服務(wù)
# 打開cmd,進入到剛才解壓到的目錄,啟動臨時服務(wù):redis-server.exe redis.windows.conf (備注:通過這個命令,會創(chuàng)建Redis臨時服務(wù),不會在window Service列表出現(xiàn)Redis服務(wù)名稱和狀態(tài),此窗口關(guān)閉,服務(wù)會自動關(guān)閉。)
#打開另一個cmd窗口,客戶端調(diào)用:redis-cli.exe -h 127.0.0.1 -p 6379。
Redis自定義windows服務(wù)安裝
進入Redis安裝包目錄,安裝服務(wù):redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose
可以在window service列表下查看是否安裝成功。
安裝服務(wù):redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose
啟動服務(wù):redis-server.exe --service-start --service-name redisserver1
停止服務(wù):redis-server.exe --service-stop --service-name redisserver1
卸載服務(wù):redis-server.exe --service-uninstall--service-name redisserver1
二、Redis Cluster環(huán)境
搭建 Redis集群,三個主節(jié)點,三個從節(jié)點,多主節(jié)點為了分布集群,從節(jié)點是為了高可用性。
軟件環(huán)境準(zhǔn)備
# 下載redis最新版本(版本必需要3.0以上)
下載地址:https://github.com/MSOpenTech/redis/releases下載Redis-x64-3.0.504.zip
# 安裝Ruby語言運行環(huán)境
下載地址:http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3-x64.exe
選中3個,然后點擊安裝。
驗證:打開cmd窗口,輸入ruby –version出現(xiàn)版本號 表示安裝成功。
#安裝redis的ruby驅(qū)動rubygems
下載地址:https://rubygems.org/pages/download
也可以去這里下載:http://www.dbjr.com.cn/softs/539242.html
進入rubygems-2.7.7目錄下面執(zhí)行cmd命令:ruby setup.rb
# 執(zhí)行命令:gem install redis
開始安裝
#解壓Redis-x64-3.0.504.zip,并復(fù)制,如下圖
#修改每個redis.windows.conf, 修改里面的端口號,以及集群的配置
cluster-enabled yescluster-config-file nodes-6379.confcluster-node-timeout 15000appendonly yes
如果cluster-enabled 不為yes, 那么在使用JedisCluster集群代碼獲取的時候,會報錯。
cluster-node-timeout 調(diào)整為 15000,那么在創(chuàng)建集群的時候,不會超時。
cluster-config-file nodes-6379.conf 是為該節(jié)點的配置信息,這里使用 nodes-端口.conf命名方法。服務(wù)啟動后會在目錄生成該文件。
記得把其他節(jié)點配置也要改。
#編寫一個bat來啟動redis,在每個節(jié)點目錄下創(chuàng)建start.bat,內(nèi)容如下(端口記得對應(yīng)):
title redis-7000redis-server.exe redis.windows.conf
#進入每個端口的文件夾,執(zhí)行start-server.bat文件,啟動每個節(jié)點的服務(wù)
#安裝集群腳本redis-trib
下載地址https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb
進入redis-trib.rb所在的目錄。
執(zhí)行以下命令:
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
注:如果出現(xiàn)Node is not empty,先清空所有端口目錄下面的nodes.conf和dump.rdb文件再重復(fù)執(zhí)行第9步,然后再執(zhí)行上面的命令。
在出現(xiàn)Can I set the above configuration? (type 'yes' to accept): 請確定并輸入yes。
#驗證集群是否啟動成功
進入某個端口文件夾,操作某個節(jié)點指令:
redis-cli.exe -c -p 7000
參數(shù)-c表示進入cluster模式。
在7000節(jié)點存儲一個鍵
Set test zxh
注意:可能會出現(xiàn)“Redirected to slot [8106] located at 127.0.0.1”的提示,這表示通過計算,落在了8106這個slot上了(因為7000是slave,7001是master只有master才能寫入,如果在7001進行寫入,則不會有該提示信息)。
重新打開一個cmd窗口連接7001節(jié)點
redis-cli.exe -c -p 7001
執(zhí)行
get test
如果能取到在7000節(jié)點存儲的鍵,表明集群安裝成功。
注:下次啟動集群的時候,只需要啟動每個節(jié)點就行,無需在執(zhí)行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是一個分布式系統(tǒng), 一個架構(gòu)中可以運行多個Sentinel 進程,一個 Sentinel 可以與其他多個 Sentinel 進行連接, 各個 Sentinel 之間可以互相檢查對方的可用性,并進行信息交換。
每個哨兵(sentinel)會向其它哨兵(sentinel)、master、slave 定時發(fā)送消息,以確認對方是否“活”著。如果發(fā)現(xiàn)對方在
指定時間(可配置)內(nèi)未回應(yīng),則暫時認為對方已掛(即所謂的“主觀認為宕機”或“主觀下線”:Subjective Down,簡稱 sdown)
若“哨兵群”中的多數(shù) sentinel 都報告某一 master 沒響應(yīng),系統(tǒng)才認為 該master “徹底死亡”(即客觀上的真正宕機或“客觀下線”:Objective Down,簡稱 odown),通過一定的 vote 算法,從剩下的 slave 節(jié)點中,選一臺提升為 master,然后自動修改相關(guān)配置。
配置sentinel
注意:windows系統(tǒng)下解壓的Redis的zip文件夾中是不存在sentinel.conf文件的,那么我們需要手動來新建該文件。
sentinel.conf的文件內(nèi)容解讀:
# ------------------------------------------------------------------------------------ #
# 這個是Redis-6379的配置內(nèi)容,其它兩個Redis-6380、Redis-6381同理新增然后改一下端口即可 #
# ------------------------------------------------------------------------------------ #
# 當(dāng)前Sentinel服務(wù)運行的端口
# 在默認情況下,Sentinel 使用 TCP 端口 26379(普通 Redis 服務(wù)器使用的是 6379 )
port 26379
# 哨兵監(jiān)聽的主節(jié)點mymaster;最后面的數(shù)字 3 表示最低通過票數(shù);# 默認值 2
# 如果投票通過,則哨兵群體認為該主節(jié)點客觀下線(odowm)
sentinel monitor mymaster 127.0.0.1 6379 3
# 哨兵認定當(dāng)前主節(jié)點mymaster失效的判別間隔時間
# 如果在設(shè)置的時間內(nèi)(毫秒),當(dāng)前主節(jié)點沒有響應(yīng)或者響應(yīng)錯誤代碼,則當(dāng)前哨兵認為該主節(jié)點主主觀下線(sdown)
# 3s內(nèi)mymaster無響應(yīng),則認為mymaster宕機了
sentinel down-after-milliseconds mymaster 3000
# 執(zhí)行故障轉(zhuǎn)移時,最多有1個從節(jié)點同時對新的主節(jié)點進行同步
# 當(dāng)新的master上位時,允許從節(jié)點同時對新主節(jié)點進行同步的從節(jié)點個數(shù);默認是1,建議保持默認值
# 在故障轉(zhuǎn)移期間,將會終止客戶端的請求
# 如果此值較大,則意味著"集群"終止客戶端請求的時間總和比較大
# 反之此值較小,則意味著"集群"在故障轉(zhuǎn)移期間,多個從節(jié)點仍可以提供服務(wù)給客戶端
sentinel parallel-syncs mymaster 1
# 故障轉(zhuǎn)移超時時間。
# 當(dāng)故障轉(zhuǎn)移開始后,但是在此時間內(nèi)仍然沒有觸發(fā)任何故障轉(zhuǎn)移操作,則當(dāng)前哨兵會認為此次故障轉(zhuǎn)移失敗
sentinel failover-timeout mymaster 10000
如果搭建的是哨兵集群,只需要修改port端口即可。
哨兵啟動腳本start-sentinel.bat內(nèi)容如下:
redis-server.exe sentinel.conf --sentinel
注意:sentinel的配置與redis的配置是分開的,如果搭建的是:一主兩從,哨兵集群(3個)。那么就需要復(fù)制6份Redis腳本,3份作為主從復(fù)制(一主兩從),3份作為sentinel。
主從切換
可以從 sentinel 日志中出現(xiàn)的幾個消息來進行查看故障轉(zhuǎn)移:
- ① +switch-master:表示切換主節(jié)點(從節(jié)點晉升為主節(jié)點)
- ② +sdown:主觀下線
- ③ +odown:客觀下線
- ④ +convert-to-slave:切換從節(jié)點(原主節(jié)點降為從節(jié)點)
但是在我們的操作中,發(fā)現(xiàn)當(dāng)master下線的時候,sentinel可以看到master下線的日志,但是并沒有主備切換的日志信息
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot~ObjectMapper~dto到entity的自動賦值
這篇文章主要介紹了springboot~ObjectMapper~dto到entity的自動賦值,本文分三種情況給大家介紹,需要的朋友可以參考下2018-08-08mybatis-plus實體類中出現(xiàn)非數(shù)據(jù)庫映射字段解決辦法
這篇文章主要介紹了mybatis-plus實體類中出現(xiàn)非數(shù)據(jù)庫映射字段解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03關(guān)于HashMap的put方法執(zhí)行全過程
這篇文章主要介紹了關(guān)于HashMap的put方法執(zhí)行全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06java動態(tài)規(guī)劃算法——硬幣找零問題實例分析
這篇文章主要介紹了java動態(tài)規(guī)劃算法——硬幣找零問題,結(jié)合實例形式分析了java動態(tài)規(guī)劃算法——硬幣找零問題相關(guān)原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-05-05SpringBoot詳解如果通過@Value注解給靜態(tài)變量注入值
這篇文章主要介紹了springboot如何通過@Value給靜態(tài)變量注入值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06