當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]本篇文章講述了Redis單機(jī)環(huán)境、主備、哨兵Sentinel模式以及RedisCluster集群模式下的操作步驟,關(guān)于這些操作我們沒(méi)必要死記硬背,只需要總結(jié)下來(lái),下次使用直接拿出來(lái)就好。建議當(dāng)作操作手冊(cè)收藏。安裝單實(shí)例Redis編譯Redis1.下載Redis源碼包wgethtt...

本篇文章講述了 Redis 單機(jī)環(huán)境、主備、哨兵 Sentinel 模式以及 Redis Cluster 集群模式下的操作步驟,關(guān)于這些操作我們沒(méi)必要死記硬背,只需要總結(jié)下來(lái),下次使用直接拿出來(lái)就好。

建議當(dāng)作操作手冊(cè)收藏。

安裝單實(shí)例 Redis

編譯Redis

1.下載Redis源碼包wget https://download.redis.io/releases/redis-5.0.13.tar.gz2.解壓文件tar -zxvf redis-5.0.13.tar.gz3.cd redis-5.0.134.make?編譯

1.如果遇到以下報(bào)錯(cuò),需要安裝依賴?yum install gcc

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

2.如果遇到以下報(bào)錯(cuò)

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

分配器allocator, 如果有MALLOC 這個(gè) 環(huán)境變量, 會(huì)有用這個(gè)環(huán)境變量的 去建立Redis。

而且libc 并不是默認(rèn)的 分配器, 默認(rèn)的是 jemalloc, 因?yàn)?jemalloc 被證明 有更少的 fragmentation problems 比libc。

但是如果你又沒(méi)有jemalloc 而只有 libc 當(dāng)然 make 出錯(cuò)。所以加這么一個(gè)參數(shù),運(yùn)行如下命令:

make MALLOC=libc

此時(shí)編譯完成,文件目錄下已經(jīng)生成可執(zhí)行文件。


必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)


安裝Redis服務(wù)

1.安裝編譯后的文件make install PREFIX=/usr/local/redis52.編輯環(huán)境變量vi /etc/profile3.追加如下信息

export REDIS_HOME=/usr/local/redis5export PATH=$PATH:$REDIS_HOME/bin4.更新配置source /etc/profile

echo $PATH檢查環(huán)境變量是否正確必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

5.cd utils/6.安裝服務(wù)./install_server.sh然后出現(xiàn)如下輸出

[root@node1 utils]# ./install_server.sh Welcome to the redis service installerThis script will help you easily set up a running redis server
Please select the redis port for this instance: [6379] 選擇啟動(dòng)端口Selecting default: 6379Please select the redis config file name [/etc/redis/6379.conf] 設(shè)置配置文件目錄Selected default - /etc/redis/6379.confPlease select the redis log file name [/var/log/redis_6379.log] 設(shè)置日志目錄Selected default - /var/log/redis_6379.logPlease select the data directory for this instance [/var/lib/redis/6379] 設(shè)置數(shù)據(jù)庫(kù)目錄Selected default - /var/lib/redis/6379Please select the redis executable path [/usr/local/redis5/bin/redis-server] 設(shè)置可執(zhí)行文件目錄Selected config:Port : 6379Config file : /etc/redis/6379.confLog file : /var/log/redis_6379.logData dir : /var/lib/redis/6379Executable : /usr/local/redis5/bin/redis-serverCli Executable : /usr/local/redis5/bin/redis-cliIs this ok? Then press ENTER to go on or Ctrl-C to abort.Copied /tmp/6379.conf => /etc/init.d/redis_6379 復(fù)制配置文件Installing service... 安裝服務(wù)Successfully added to chkconfig! 設(shè)置開(kāi)機(jī)啟動(dòng)Successfully added to runlevels 345!Starting Redis server... 啟動(dòng)服務(wù)Installation successful!
7.service redis_6379 status?檢查是否安裝成功ps -ef|grep redis?檢查正在運(yùn)行的服務(wù)

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

配置修改

1.修改 配置信息vi /etc/redis/6379.conf?(這一步可選)

daemonize no # 前臺(tái)方式運(yùn)行 為了方便觀察#logfile /var/log/redis_6379.log #注釋掉,前臺(tái)輸出 為了方便觀察appendonly yes # aof同步開(kāi)啟
2.啟動(dòng)?redis-server /etc/redis/6379.conf3.啟動(dòng)客戶端?redis-cli -p 6379

主備安裝

1.使用install_server.sh再安裝兩個(gè)Redis實(shí)例,使用端口號(hào)在同一機(jī)器區(qū)分 這里分別使用6379,6380,6381,并且分別啟動(dòng)2.登陸客戶端 redis-cli -p 63813.輸入命令 help SLAVEOF,6380端口實(shí)例操作同理。

redis-cli -p 6381 127.0.0.1:6381>help SLAVEOFSLAVEOF host port summary: Make the server a replica of another instance, or promote it as master. Deprecated starting with Redis 5. Use REPLICAOF instead. since: 1.0.0 group: server
127.0.0.1:6381> REPLICAOF 127.0.0.1 6379 OK 127.0.0.1:6381>
4.設(shè)置追隨6379為主?REPLICAOF 127.0.0.1 6379

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

6381變化:

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

6379變化:

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

25692:S 03 Sep 2021 20:19:53.182 * REPLICAOF 127.0.0.1:6379 enabled (user request from 'id=3 addr=127.0.0.1:42336 fd=7 name= age=113 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=44 qbuf-free=32724 obl=0 oll=0 omem=0 events=r cmd=replicaof')25692:S 03 Sep 2021 20:19:54.146 * Connecting to MASTER 127.0.0.1:637925692:S 03 Sep 2021 20:19:54.146 * MASTER <-> REPLICA sync started25692:S 03 Sep 2021 20:19:54.146 * Non blocking connect for SYNC fired the event.25692:S 03 Sep 2021 20:19:54.147 * Master replied to PING, replication can continue...25692:S 03 Sep 2021 20:19:54.147 * Trying a partial resynchronization (request 839fc4e0817f7c98e9fa8204c53aedf661c71bf1:1).25692:S 03 Sep 2021 20:19:54.148 * Full resync from master: 4cff4bffe3e33adcca1864de53064480eb00c200:025692:S 03 Sep 2021 20:19:54.148 * Discarding previously cached master state.25692:S 03 Sep 2021 20:19:54.251 * MASTER <-> REPLICA sync: receiving 176 bytes from master25692:S 03 Sep 2021 20:19:54.254 * MASTER <-> REPLICA sync: Flushing old data # 會(huì)先刪除本節(jié)點(diǎn)老數(shù)據(jù)25692:S 03 Sep 2021 20:19:54.254 * MASTER <-> REPLICA sync: Loading DB in memory25692:S 03 Sep 2021 20:19:54.254 * MASTER <-> REPLICA sync: Finished with success
效果如下圖:

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

如果一個(gè)節(jié)點(diǎn)首次追隨主節(jié)點(diǎn),會(huì)執(zhí)行RDB同步 如果從節(jié)點(diǎn)掛掉,啟動(dòng)直接追隨先前的主節(jié)點(diǎn),只做增量同步 但是如果節(jié)點(diǎn)掛掉,啟動(dòng)直接追隨先前的主節(jié)點(diǎn),同步方式為AOF,則會(huì)做RDB全量同步。??赡苁且?yàn)锳OF沒(méi)有記錄之前追隨過(guò)誰(shuí)

取消追隨主節(jié)點(diǎn):REPLICAOF no one

哨兵模式 Sentinel

配置 sentinel

1.從redis源碼目錄復(fù)制官網(wǎng)提供的配置文件cp /root/soft/redis-5.0.13/sentinel.conf /etc/redis/sentinel_26379.conf2.修改配置文件

port 26379sentinel monitor mymaster 127.0.0.1 6379 23.啟動(dòng)sentinel實(shí)例redis-server /etc/redis/sentinel_26379.conf --sentinel?以此為例啟動(dòng)三臺(tái)

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

?

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

4.設(shè)置 sentinel 成功

驗(yàn)證

1.此時(shí)殺死m(xù)aster 6379實(shí)例

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

2.選舉6380為新的主節(jié)點(diǎn)

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

3.此時(shí)重啟6379節(jié)點(diǎn)?

redis-server /etc/redis/6379.conf必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

其中一個(gè)sentinel輸出如下

11035:X 04 Sep 2021 01:41:29.685 # -sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 638011035:X 04 Sep 2021 01:41:39.675 * convert-to-slave slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380原有的主節(jié)點(diǎn)已經(jīng)切換為備用節(jié)點(diǎn)

Redis Cluster

配置集群

1.查看Redis cluster相關(guān)命令 redis-cli --cluster help

[root@node1 ~]# redis-cli --cluster helpCluster Manager Commands: create host1:port1 ... hostN:portN --cluster-replicas check host:port --cluster-search-multiple-owners info host:port fix host:port --cluster-search-multiple-owners reshard host:port --cluster-from --cluster-to --cluster-slots --cluster-yes --cluster-timeout --cluster-pipeline --cluster-replace rebalance host:port --cluster-weight <node1=w1...nodeN=wN> --cluster-use-empty-masters --cluster-timeout --cluster-simulate --cluster-pipeline --cluster-threshold --cluster-replace add-node new_host:new_port existing_host:existing_port --cluster-slave --cluster-master-id del-node host:port node_id call host:port command arg arg .. arg set-timeout host:port milliseconds import host:port --cluster-from --cluster-copy --cluster-replace2.分別啟動(dòng)每個(gè)Redis實(shí)例

Redis 本身在Utils目錄下提供了單機(jī)部署 cluster demo 的util腳本,可以快速一鍵部署。

cd /root/soft/redis-5.0.13/utils/create-cluster

vi create-cluster

# SettingsPORT=30000TIMEOUT=2000NODES=6 # 節(jié)點(diǎn)數(shù)REPLICAS=1 # 備用節(jié)點(diǎn)數(shù) 此配置為3主3從./create-cluster start 啟動(dòng)實(shí)例

./create-cluster create

3.redis-cli --cluster create 127.0.0.1:30001 127.0.0.1:30002 127.0.0.1:30003 127.0.0.1:30004 127.0.0.1:30005 127.0.0.1:30006 --cluster-replicas 1

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)


4.創(chuàng)建集群完成,客戶端鏈接校驗(yàn)redis-cli -c -p 30001

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

?如果發(fā)生了自動(dòng)重定向,則表示RedisCluster使用正常


檢查Redis cluster狀態(tài)

1.redis-cli --cluster check 127.0.0.1:30001

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

reshrad Redis槽位

1.redis-cli --cluster reshard 127.0.0.1:300012.然后按照提示操作,首先選擇要移動(dòng)的槽位數(shù)量,然后選擇接受節(jié)點(diǎn)

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)


3.再選擇需要從哪些節(jié)點(diǎn)移出槽位

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)

4.最后輸入done,然后yes確定5.檢查移動(dòng)后的結(jié)果 redis-cli --cluster info 127.0.0.1:30001

必會(huì)Redis單節(jié)點(diǎn)、Sentinel和Cluster操作實(shí)戰(zhàn)


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉