当前位置:网站首页>windows下Redis-cluster集群搭建
windows下Redis-cluster集群搭建
2022-07-05 04:26:00 【十一姐】
一、下載安裝
需要下載如下三個:
Redis、Ruby語言運行環境、Redis的Ruby驅動redis-3.2.2.gem
1、Redis-x64-5.0.14.1.zip 下載, 6 臺 redis 服務器,搭建偽集群,並運行在不同的端口 6380-6385
2、Ruby下載,ruby脚本來實現集群搭建,一路next,最後取消勾選,finish,然後cmd裏面輸出
ruby -v
代錶安裝成功3、安裝Redis的Ruby驅動rubygems下載,是一個用於對 Ruby組件進行打包的 Ruby 打包系統;下載後解壓,然後打開命令窗口切換到解壓目錄中,執行命令
ruby setup.rb
二、搭建Redis集群
要讓集群正常運作至少需要3個主節點,建議配置3個主節點,其餘3個作為各個主節點的從節點(也是官網推薦的模式),通過同一臺電腦不同端口模擬
1、新建一個文件夾Redis-cluster,並將前面下載的
Redis-x64-5.0.14.1.zip
進行解壓,並將文件夾重命名為63802、打開6380目錄下的文件
redis.windows.conf
,修改裏面的端口號port為6380,主要改了如下五處,1. port 6380 //修改為與當前文件夾名字一樣的端口號 2. appendonly yes //指定是否在每次更新操作後進行日志記錄,Redis在 默認情况下是异步的把數據寫入磁盤,如果不開啟,可能會在斷電時導4. 致一段時間內的數據丟失。 yes錶示:存儲方式,aof,將寫操作記錄保存到日志中 3. cluster-enabled yes //開啟集群模式 4. cluster-config-file nodes-6380.conf //保存節點配置,自動創建,自動更新(建議命名時加上端口號) 5. cluster-node-timeout 15000 //集群超時時間,節點超過這個時間沒反應就斷定是宕機
3、在6380目錄下新建文件
start.bat
,內容如下,用來進入每個端口命名的文件夾下啟動服務title redis-6380 redis-server.exe redis.windows.conf
4、複制6380文件夾,並分別重命名為6381-6385,同時修改各自目錄下的
redis.windows.con
與start.bat
文件裏面的端口號,將6380替換成對應的6381-63855、打開任意cmd窗口執行
gem install redis
6、構建集群脚本,從6380目錄下複制粘貼
redis-cli.exe
到Redis-cluster目錄下,同時6380~6385每個目錄下的start.bat文件雙擊運行並不要關閉!!!
7、然後在當前Redis-cluster目錄下打開cmd窗口,執行如下命令,到此集群構建完畢
redis-cli --cluster create 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 --cluster-replicas 1
三、集群環境測試
- 參考文檔
redis-cli -c -h 127.0.0.1 -p 6380
- 查看集群信息:
cluster info
- 查看主從關系:
info replication
, 集群節點按照從主到從的方式從左到右依次排列6個redis 節點,因此也可以看出6380,6381,6382三個是主節點,6383,6384,6385是三個從節點,對應關系是:主6380從6383 - 查看各個節點分配slot:
cluster nodes
四、將redis-cluster注册生windows服務
控制臺啟動redis server如果控制臺關閉了之後redis server也會一同被關閉,那麼我們就需要讓redis在後臺運行需要將redis server注册為windows服務,然後再start
所以我們用如下方式可以解决上面的問題,到6380-6385目錄下分別重命名服務,並啟動,
請至少保證三個主節點服務已經啟動在後臺,否則會導致連接上redis-cluster,但是連不上裏面的db0
# 通過service-name啟動redis服務: redis-server --service-install redis.windows.conf --service-name redis6380 --loglevel verbose redis-server --service-start --service-name redis6380 # 通過service-name停止redis服務: redis-server --service-stop --service-name redis6380
如果服務啟動失敗,以管理員身份打開cmd執行
SC delete 服務名稱
,然後當對應目錄重新建服務
五、打開redis可視化工具,如圖連接成功
- 如圖,測試連接成功
- 默認是127.0.0.1可以訪問,如下修改.conf,可以修改bind指定局域網ip訪問,
修改配置後,需要重啟服務方可生效
边栏推荐
- File upload bypass summary (upload labs 21 customs clearance tutorial attached)
- Threejs loads the city obj model, loads the character gltf model, and tweetjs realizes the movement of characters according to the planned route
- Possible stack order of stack order with length n
- [popular science] basic knowledge of thermal design: heat dissipation analysis of 5g optical devices
- 直播預告 | 容器服務 ACK 彈性預測最佳實踐
- PHP读取ini文件并修改内容写入
- Network security - record web vulnerability fixes
- 包 类 包的作用域
- Key review route of probability theory and mathematical statistics examination
- 指针函数(基础)
猜你喜欢
小程序中实现文章的关注功能
托管式服务网络:云原生时代的应用体系架构进化
Is "golden nine and silver ten" the best time to find a job? Not necessarily
程序员应该怎么学数学
Threejs factory model 3DMAX model obj+mtl format, source file download
行为感知系统
[thingsboard] how to replace the homepage logo
Learning notes 8
CSDN正文自动生成目录
The scale of computing power in China ranks second in the world: computing is leaping forward in Intelligent Computing
随机推荐
解密函数计算异步任务能力之「任务的状态及生命周期管理」
A application wakes up B should be a fast method
Behavior perception system
函數(易錯)
Threejs realizes rain, snow, overcast, sunny, flame
线上故障突突突?如何紧急诊断、排查与恢复
Hexadecimal to decimal
[thingsboard] how to replace the homepage logo
如何进行「小步重构」?
Threejs realizes the drawing of the earth, geographical location annotation, longitude and latitude conversion of world coordinates threejs coordinates
Seven join join queries of MySQL
TPG x AIDU|AI领军人才招募计划进行中!
Aperçu en direct | Services de conteneurs ACK flexible Prediction Best Practices
Convert Boolean to integer value PHP - Convert Boolean to integer value PHP
【虛幻引擎UE】實現UE5像素流部署僅需六步操作少走彎路!(4.26和4.27原理類似)
Fonction (sujette aux erreurs)
kubernetes集群之调度系统
Longyuan war "epidemic" 2021 network security competition web easyjaba
After the deployment of web resources, the navigator cannot obtain the solution of mediadevices instance (navigator.mediadevices is undefined)
Raki's notes on reading paper: code and named entity recognition in stackoverflow