搭建redis 集群----Windows 篇(史上最細衙吩,會聊天打字的人都學(xué)會了所森,需要的是耐心)

\color{red}{提前說好:本篇是在windows上搭建redis 集群尖坤,若走錯了稳懒,別慌,請點擊這里}csdn博客

由于公司項目使用的架構(gòu)不得不使用redis 集群慢味,但公司的網(wǎng)絡(luò)又差的讓人崩潰场梆,所以決定搭建一套本地環(huán)境,共開發(fā)使用纯路;

本文側(cè)重點主要在于如何搭建redis集群(cluster模式) 或油,看完之后,即可隨意搭建N主N從的Cluster模式(最低3主)驰唬。如果不是非必須顶岸,還是建議在Linux上搭建redis 集群,windows 上某些操作還是挺受限制的定嗓,倒是不影響使用。

一萍桌、簡單介紹

1宵溅,Redis集群分為三種模式,下列順序由簡單到復(fù)雜
        1上炎,主從模式    `redis實例架構(gòu):一主多從`

        2恃逻,哨兵模式(sentinel模式) `建立在主從模式基礎(chǔ)上,redis實例架構(gòu):一主多從多哨兵,哨兵的作用是監(jiān)聽主庫掛掉之后藕施,會選舉一個從庫提升為主庫寇损,從而做到高可用,所以哨兵redis實例建議不要與 主庫實例與從庫實例在一臺服務(wù)器上`

        3裳食,cluster模式矛市,`也就是本文主要介紹的,redis實例架構(gòu):N主N從,(最低三主)比如:3主0從(3臺redis 實例)诲祸,3主3從(6臺redis實例)浊吏,本文介紹3主0從而昨,雖然意義不大,但是夠用就好找田,當然你可以搭建30主60從(90個redis 實例而已)`
2歌憨,redis集群的三種模式最初目標都是一致的,無論哪種模式墩衙,首先確定需要幾個redis 實例务嫡,就先啟動幾個redis 實例,啟動過程無非就是每個實例與每個實例的配置(redis.conf)不同罷了漆改,比如:端口肯定不能相同心铃;當然啟動時必須要指定當前實例對應(yīng)的配置;由于cluster模式solt槽默認總共為16383籽懦,如果選擇3主的話于个,在創(chuàng)建集群的時候?qū)?6383 平均分配給這三個redis 實例,在每次添加key是暮顺,會將key進行hash 算法之后的值對16383取余厅篓,再確定存儲在哪個redis 實例之上。

本文不做過多的闡述捶码,redis詳解請點擊這里:https://blog.csdn.net/miss1181248983/article/details/90056960

二羽氮、實戰(zhàn)

1, 安裝包準備

ps: ruby的版本與rubygems 的版本應(yīng)大致保持一致惫恼,不要相差太大档押,本文采用ruby 2.7 ,rubygems 2.6,是沒有問題的祈纯,相差過大可能會引起下面安裝 ruby連接redis驅(qū)動失敗 等問題令宿,自行下載安裝包的同學(xué)請注意!

1腕窥,下載windows版本的Redis(本文使用的 redis3.2.100粒没,截至20210804最新版)

若您選擇在github上下載,也需要將redis源碼下載一份簇爆,由于創(chuàng)建集群使用的一個ruby腳本在redis源碼中(腳本的名字叫做redis-trib.rb)癞松,在redis安裝包中沒有。不過在百度網(wǎng)盤與藍奏云的安裝包里已經(jīng)已經(jīng)放了redis-trib.rb 腳本入蛆;
github下載地址:https://github.com/MSOpenTech/redis/tags
百度網(wǎng)盤:https://pan.baidu.com/s/1ewi_yAZ3xVYDafmoZnBP3A 提取碼: tafn
藍奏云:https://wwe.lanzoui.com/iwjqIsa4gle 密碼:0707

2响蓉,下載 Ruby

由于創(chuàng)建集群需要使用一個ruby腳本(指的就是上面所說的redis源碼中存放的ruby腳本),所以需要下載ruby來執(zhí)行這個腳本哨毁,這也就是windows目前 創(chuàng)建集群的一個弊端枫甲,在linux的redis 5.0之后的版本已經(jīng)支持 使用redis-cli的方式創(chuàng)建集群了,目前windows還不支持

官網(wǎng)下載:https://rubyinstaller.org/downloads/archives/
百度網(wǎng)盤:https://pan.baidu.com/s/1-q0tJee7QGLXBFT_UvtYTQ 提取碼: 4ibz
藍奏云:https://wwe.lanzoui.com/izWMzsa4bfi 密碼:0707

3,下載 rubygems (這個工具是用來安裝 《ruby連接redis 的一個驅(qū)動》)

官網(wǎng)下載:https://rubygems.org/pages/download
百度網(wǎng)盤:https://pan.baidu.com/s/1XMbTPf3Dmw-zmdu3ZCc8WA 提取碼: wpzs
藍奏云:https://wwe.lanzoui.com/iIHUjsa4b3g 密碼:0707

2, 安裝并啟動

1言秸,redis 安裝

將下載的redis安裝包 解壓到你需要安裝的目錄即可软能,便可以啟動redis實例了,我的是F盤redis_cluster/bin目錄举畸,如下圖:

redis 安裝目錄.png
2查排,ruby 安裝

將下載的ruby 安裝包解壓到你想安裝的目錄即可;我的F盤根目錄抄沮,如下圖:

ruby安裝目錄.png
3跋核,rubygems 安裝

1,將下載的rubygems 安裝包解壓到你想安裝的目錄叛买;我的F盤根目錄砂代,如下圖

rubygems安裝目錄.png

2,打開dos窗口(不知道如何打開率挣,百度搜一下)刻伊,進入到rubygems的安裝目錄下,執(zhí)行 ruby setup.rb,如下圖

rubygems install.png
4椒功,安裝ruby 連接的redis 驅(qū)動

打開dos窗口捶箱,進入到ruby安裝目錄的bin 目錄下,執(zhí)行 gem install redis动漾,出現(xiàn)windows 安全中心警報丁屎,允許訪問即可,如下圖:

image.png
5旱眯,啟動全部redis 實例

本文演示創(chuàng)建3主架構(gòu)的集群晨川,我就只啟動3個redis 實例即可,啟動幾個redis實例删豺,就需要幾個配置文件共虑,你們想多創(chuàng)建幾個也可以,大同小異呀页;

1, 創(chuàng)建3個redis.conf配置文件

ps 配置中#號開頭的為注釋

1妈拌、redis_6301.conf
#綁定的ip,在連接是redis 實例只能使用 該ip,連接,若不是只有自己使用赔桌,建議不配置此選項 比如:redis-cli -h 127.0.0.1 
#bind 127.0.0.1
#端口號
port 6301
# 日志目錄供炎,注意自己日志放在什么目錄下渴逻,本文采取的是相對路徑(相對于在哪層目錄下執(zhí)行啟動redis實例 的命令)
logfile "logs\\redis_6301.log"
# 數(shù)據(jù)目錄  注意自己數(shù)據(jù)放在什么目錄下疾党,找不到該目錄會啟動失敗
dir "data\\redis_6301\\"
# 保護模式關(guān)閉,如果在未設(shè)置密碼的情況下惨奕,必須關(guān)閉保護模式雪位,集群才可以正常使用
protected-mode no
# 訪問主庫時的密碼
#masterauth 123456
# redis 實例連接密碼
#requirepass
#開啟進群
cluster-enabled yes
# 集群節(jié)點配置
cluster-config-file nodes_6301.conf
# redis 節(jié)點超時 15s
cluster-node-timeout 15000
# 開啟aof 持久化
appendonly yes

2、redis_6302.conf
#bind 127.0.0.1
port 6302
logfile "logs\\redis_6302.log"
dir "data\\redis_6302\\"
protected-mode no
#masterauth 123456
#requirepass
appendonly yes
cluster-enabled yes
cluster-config-file nodes_6302.conf
cluster-node-timeout 15000

3梨撞、redis_6303.conf
#bind 127.0.0.1
port 6303
logfile "logs\\redis_6303.log"
dir "data\\redis_6303\\"
protected-mode no
#masterauth 123456
#requirepass
appendonly yes
cluster-enabled yes
cluster-config-file nodes_6303.conf
cluster-node-timeout 15000

2雹洗、啟動三個redis 實例

ps 啟動之前香罐,展示一下我當前的redis_cluster 安裝目錄結(jié)構(gòu),logs目錄下為空时肿,bin目錄下為 上圖 redis 安裝目錄.png ,注意觀察下圖中的路徑:

redis根目錄.png

data.png

conf.png

打開dos 窗口庇茫,進入redis 根目錄下 ,依次執(zhí)行以下命令:

bin\redis-server.exe conf\redis_6301.conf

bin\redis-server.exe conf\redis_6302.conf

bin\redis-server.exe conf\redis_6303.conf

需要打開三個 dos窗口螃成,由于window 版本的不支持直接后臺啟動旦签,啟動之后且不能關(guān)閉dos 窗口,若想實現(xiàn)后臺啟動寸宏,需安裝服務(wù)宁炫;本文暫不介紹安裝redis 服務(wù)的啟動方式。

啟動.png

ps 在創(chuàng)建集群的時候氮凝,需要所有的redis 實例必須全部啟動羔巢,并且全部可連接成功;創(chuàng)建集群之前每個實例與每個實例之間并沒有互通罩阵;創(chuàng)建集群之后竿秆,才可以在存緩存的時候,經(jīng)過hash 算法取模永脓,確定存儲在哪個redis實例上袍辞,在取緩存的時候,還會經(jīng)過同樣的算法去對應(yīng)的實例上取數(shù)據(jù);;; 別著急,下一小節(jié)貼圖

6常摧,為redis 實例創(chuàng)建集群

使用 redis-trib.rb 來創(chuàng)建集群搅吁,若你的redis 里沒有redis-trib.rb這個腳本,請在源碼的src目錄復(fù)制一份到redis安裝目錄
無從庫的情況:
執(zhí)行命令: ruby redis-trib.rb create 127.0.0.1:6301 127.0.0.1:6302 127.0.0.1:6303
有從庫的情況(下面命令6臺redis 實例:3主3從落午,每一個主庫有一個從庫):
執(zhí)行命令: ruby redis-trib.rb create --replicas 1 127.0.0.1:6301 127.0.0.1:6302 127.0.0.1:6303 127.0.0.1:6304 127.0.0.1:6305 127.0.0.1:6306
ps --replicas n 的意思是 為每個主庫建立n個從庫谎懦,所以說若想保證主庫能夠平均分配同樣的從庫實例,應(yīng)滿足:實例總數(shù)%(n+1) = 0

創(chuàng)建集群成功圖.png

3溃斋,結(jié)束語

簡單介紹安裝redis 服務(wù)界拦,后臺啟動教程
為每一個redis 實例安裝服務(wù),即可使用 net start redis6301(服務(wù)名) 來啟動

安裝服務(wù)的命令:

F:/reids_cluster/bin/redis-server.exe --service-install D:/redis_cluster/conf/redis.6380.conf --service-name redis6301(服務(wù)名)

卸載服務(wù)的命令():

F:/reids_cluster/bin/redis-server.exe --service-uninstall --service-name redis6301

ps 這里有一個非常需要注意的地方梗劫,就是上面安裝服務(wù)的命令 指定的配置建議使用絕對路徑享甸,以及配置里的日志路徑(logfile)和數(shù)據(jù)路徑(dir)都建議使用絕對路徑而非相對路徑,不是相對路徑不可以梳侨,而是需要改變原有的目錄結(jié)構(gòu)蛉威,而且很容易出錯,不是相對路徑配置對就可以了走哺,我嘗試過蚯嫌,覺得有bug,最終以redis-server.exe與配置文件在同層目錄下安裝服務(wù)成功的,反正相對路徑的方式安裝服務(wù)挺坑的择示,若配置中不配置logfile 和data的話 就不說了束凑,隨便安裝服務(wù);還有要注意的就是栅盲,若添加了logfile汪诉,那在使用redis-server.exe 期間執(zhí)行的所有命令的日志,都會在logfile 配置的日志文件中谈秫,包括上面安裝啟動redis 服務(wù)的日志摩瞎,建議 先去掉logfile,嘗試安裝成功之后孝常,在卸載掉服務(wù)旗们,配置好日志,再去安裝服務(wù)构灸。

如有不符之處上渴,歡迎評論。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喜颁,一起剝皮案震驚了整個濱河市稠氮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌半开,老刑警劉巖隔披,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異寂拆,居然都是意外死亡奢米,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門纠永,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鬓长,“玉大人,你說我怎么就攤上這事尝江∩娌ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵炭序,是天一觀的道長啤覆。 經(jīng)常有香客問我,道長惭聂,這世上最難降的妖魔是什么窗声? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮彼妻,結(jié)果婚禮上嫌佑,老公的妹妹穿的比我還像新娘。我一直安慰自己侨歉,他們只是感情好屋摇,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幽邓,像睡著了一般炮温。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上牵舵,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天柒啤,我揣著相機與錄音,去河邊找鬼畸颅。 笑死担巩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的没炒。 我是一名探鬼主播涛癌,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼送火!你這毒婦竟也來了拳话?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤种吸,失蹤者是張志新(化名)和其女友劉穎弃衍,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坚俗,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡镜盯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了猖败。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片形耗。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辙浑,靈堂內(nèi)的尸體忽然破棺而出激涤,到底是詐尸還是另有隱情,我是刑警寧澤判呕,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布倦踢,位于F島的核電站,受9級特大地震影響侠草,放射性物質(zhì)發(fā)生泄漏辱挥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一边涕、第九天 我趴在偏房一處隱蔽的房頂上張望晤碘。 院中可真熱鬧褂微,春花似錦、人聲如沸园爷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽童社。三九已至求厕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扰楼,已是汗流浹背呀癣。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弦赖,地道東北人项栏。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像蹬竖,于是被迫代替她去往敵國和親忘嫉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容