十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要介紹“CentOS7怎么搭建Redis集群”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“CentOS7怎么搭建Redis集群”文章能幫助大家解決問(wèn)題。
CentOS 7搭建Redis5.0.5集群(三臺(tái)機(jī)器,3主3備) 準(zhǔn)備工作 準(zhǔn)備三臺(tái)centos 7的機(jī)器:如下圖機(jī)器的分配情況(每臺(tái)機(jī)器關(guān)閉防火墻): IP master節(jié)點(diǎn) salve節(jié)點(diǎn) 192.168.0.166 redis-166:7001 redis-166:7002 192.168.0.167 redis-167:7001 redis-167:7002 192.168.0.168 redis-168:7001 redis-168:7002 設(shè)置三臺(tái)機(jī)器的/etc/hosts,每臺(tái)都要添加如下三行,保存退出 [root@localhost tools]# vim /etc/hosts 192.168.0.166 redis-166 192.168.0.167 redis-167 192.168.0.168 redis-168 1 2 3 4 官網(wǎng)下載redis-5.0.5版本: http://download.redis.io/releases/redis-5.0.5.tar.gz 把下載的包上傳到上面3臺(tái)centos中 開(kāi)始安裝 我們以192.168.0.166機(jī)器安裝為例,其他兩臺(tái)只是配置文件的IP不一樣 如果centos中沒(méi)有g(shù)cc環(huán)境,則需要先安裝gcc。如果有就直接看下一步。 [root@localhost tools]# yum install -y gcc 1 解壓redis包到當(dāng)前目錄下 [root@localhost tools]# tar -zxvf redis-5.0.5.tar.gz 1 進(jìn)入剛解壓出來(lái)的redis目錄,開(kāi)始編譯安裝 [root@localhost tools]# cd redis-5.0.5/ [root@localhost redis-5.0.5]# make && make PREFIX=/usr/local/redis install 1 2 查看是否編譯安裝成功,執(zhí)行 如下命令,如果輸出0 表示redis安裝成功了 [root@localhost redis-5.0.5]# echo $? 0 1 2 配置環(huán)境變量,在/etc/profile文件最后添加如下內(nèi)容: [root@localhost tools]# vim /etc/profile ###### redis env ###### export REDIS_HOME=/usr/local/redis export PATH=$PATH:$REDIS_HOME/bin 1 2 3 4 5 其他167和168兩臺(tái)機(jī)器,安裝redis跟上面166機(jī)器完全一樣 集群配置 我們還是以192.168.0.166機(jī)器安裝為例,其他兩臺(tái)只是配置文件的IP不一樣 分別創(chuàng)建兩個(gè)7001和7002的配置文件目錄conf,日志目錄logs,數(shù)據(jù)存儲(chǔ)目錄data,如下命令: mkdir -p /usr/local/redis/redis_cluster/7001/conf/ mkdir -p /usr/local/redis/redis_cluster/7001/logs/ mkdir -p /usr/local/redis/redis_cluster/7001/data/ mkdir -p /usr/local/redis/redis_cluster/7002/conf/ mkdir -p /usr/local/redis/redis_cluster/7002/logs/ mkdir -p /usr/local/redis/redis_cluster/7002/data/ 1 2 3 4 5 6 7 創(chuàng)建7001的配置文件,并添加如下內(nèi)容: vim /usr/local/redis/redis_cluster/7001/conf/redis.conf # 綁定服務(wù)器域名或IP地址 bind redis-166 # 設(shè)置端口,區(qū)分集群中Redis的實(shí)例 port 7001 # 后臺(tái)運(yùn)行 daemonize yes # pid進(jìn)程文件名,以端口號(hào)命名 pidfile /var/run/redis-7001.pid # 日志文件名稱,以端口號(hào)為目錄來(lái)區(qū)分 logfile /usr/local/redis/redis_cluster/7001/logs/redis.log # 數(shù)據(jù)文件存放地址,以端口號(hào)為目錄名來(lái)區(qū)分 dir /usr/local/redis/redis_cluster/7001/data # 啟用集群 cluster-enabled yes # 配置每個(gè)節(jié)點(diǎn)的配置文件,同樣以端口號(hào)為名稱 cluster-config-file nodes_7001.conf # 配置集群節(jié)點(diǎn)的超時(shí)時(shí)間 cluster-node-timeout 15000 # 啟動(dòng)AOF增量持久化策略 appendonly yes # 發(fā)生改變,則記錄日志 appendfsync always 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 創(chuàng)建7002的配置文件,并添加如下內(nèi)容: vim /usr/local/redis/redis_cluster/7002/conf/redis.conf # 綁定服務(wù)器域名或IP地址 bind redis-166 # 設(shè)置端口,區(qū)分集群中Redis的實(shí)例 port 7002 # 后臺(tái)運(yùn)行 daemonize yes # pid進(jìn)程文件名,以端口號(hào)命名 pidfile /var/run/redis-7002.pid # 日志文件名稱,以端口號(hào)為目錄來(lái)區(qū)分 logfile /usr/local/redis/redis_cluster/7002/logs/redis.log # 數(shù)據(jù)文件存放地址,以端口號(hào)為目錄名來(lái)區(qū)分 dir /usr/local/redis/redis_cluster/7002/data # 啟用集群 cluster-enabled yes # 配置每個(gè)節(jié)點(diǎn)的配置文件,同樣以端口號(hào)為名稱 cluster-config-file nodes_7002.conf # 配置集群節(jié)點(diǎn)的超時(shí)時(shí)間 cluster-node-timeout 15000 # 啟動(dòng)AOF增量持久化策略 appendonly yes # 發(fā)生改變,則記錄日志 appendfsync always 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 其他167和168兩臺(tái)機(jī)器,集群配置跟上面166機(jī)器配置只是域名不同,其他設(shè)置都是一樣的 啟動(dòng)集群 在保證上面166,167,168都配置完成后,開(kāi)始啟動(dòng)166,167,168各節(jié)點(diǎn) redis-server /usr/local/redis/redis_cluster/7001/conf/redis.conf redis-server /usr/local/redis/redis_cluster/7002/conf/redis.conf 1 2 查看各機(jī)器上的各節(jié)點(diǎn)是否都啟動(dòng)成功 [root@localhost redis-5.0.5]# ps -ef | grep redis root 6460 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-166:7001 [cluster] root 6471 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-166:7002 [cluster] 1 2 3 4 [root@localhost redis-5.0.5]# ps -ef | grep redis root 6532 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-167:7001 [cluster] root 6548 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-167:7002 [cluster] 1 2 3 4 [root@localhost redis-5.0.5]# ps -ef | grep redis root 6486 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-168:7001 [cluster] root 6498 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-168:7002 [cluster] 1 2 3 4 使用 reids-cli 創(chuàng)建Redis集群 (注:這里必須使用IP,如果使用像redis-166這樣的域名,則會(huì)報(bào)錯(cuò),具體原因我也不清楚) redis-cli –cluster create 192.168.0.166:7001 192.168.0.167:7001 192.168.0.168:7001 192.168.0.166:7002 192.168.0.167:7002 192.168.0.168:7002 –cluster-replicas 1 1 查看我們剛創(chuàng)建集群的狀態(tài),如下命令:(在3臺(tái)集群中的任意一臺(tái)機(jī)器查看任意節(jié)點(diǎn)都一樣,會(huì)帶出所有的節(jié)點(diǎn)信息) [root@localhost redis-5.0.5]# redis-cli –cluster check 192.168.0.167:7001 192.168.0.167:7001 (b909c05c…) -> 0 keys | 5462 slots | 1 slaves. 192.168.0.166:7001 (e136a43b…) -> 0 keys | 5461 slots | 1 slaves. 192.168.0.168:7001 (4bf0b7df…) -> 1 keys | 5461 slots | 1 slaves. [OK] 1 keys in 3 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 192.168.0.167:7001) M: b909c05ca4c89695fee7b4799050312ed20c989e 192.168.0.167:7001 slots:[5461-10922] (5462 slots) master 1 additional replica(s) M: e136a43b8dbfd7612f48fe2c17e33203d5329eed 192.168.0.166:7001 slots:[0-5460] (5461 slots) master 1 additional replica(s) M: 4bf0b7df6ce34ad2d3ee87ab500b200f3ae64cee 192.168.0.168:7001 slots:[10923-16383] (5461 slots) master 1 additional replica(s) S: 84ada651baf494cbcdbfe26232b0061146260a3d 192.168.0.167:7002 slots: (0 slots) slave replicates e136a43b8dbfd7612f48fe2c17e33203d5329eed S: 4b9a181365ba49dde3def4d9d562c5a4d4ef657e 192.168.0.166:7002 slots: (0 slots) slave replicates 4bf0b7df6ce34ad2d3ee87ab500b200f3ae64cee S: 02c3fc75bc6e6d4e070563f2b42a41f2616f66a5 192.168.0.168:7002 slots: (0 slots) slave replicates b909c05ca4c89695fee7b4799050312ed20c989e [OK] All nodes agree about slots configuration. >>> Check for open slots… >>> Check slots coverage… [OK] All 16384 slots covered. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 測(cè)試集群是否正常: 在集群中的任意一臺(tái)測(cè)試都可以,如我們可以在166上連接167上的7002節(jié)點(diǎn)并添加一個(gè)數(shù)據(jù) [root@localhost redis-5.0.5]# redis-cli -c -h 192.168.0.167 -p 7002 192.168.0.167:7002> set key001 helloRredis -> Redirected to slot [274] located at 192.168.0.166:7001 OK 192.168.0.166:7001> get key001 “helloRredis” 192.168.0.166:7001> 1 2 3 4 5 6 7 8 再去167上連接7001節(jié)點(diǎn)和168上連接7001或者7002看是否可以查詢到數(shù)據(jù) [root@localhost redis-5.0.5]# redis-cli -c -h 192.168.0.167 -p 7001 192.168.0.167:7001> get key001 -> Redirected to slot [274] located at 192.168.0.166:7001 “helloRredis” 192.168.0.166:7001> 1 2 3 4 5 6 [root@localhost redis-5.0.5]# redis-cli -c -h 192.168.0.168 -p 7002 192.168.0.168:7002> get key001 -> Redirected to slot [274] located at 192.168.0.166:7001 “helloRredis” 192.168.0.166:7001> 1 2 3 4 5 6 出現(xiàn)上面的結(jié)果,說(shuō)明我們搭建的集群運(yùn)作正常 如果需要配置開(kāi)機(jī)自啟動(dòng),添加如下兩行:(每臺(tái)機(jī)器都要配置),保存退出即可。以后開(kāi)機(jī)就會(huì)自動(dòng)啟動(dòng)集群 [root@localhost redis-5.0.5]# vim /etc/rc.local /usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7001/conf/redis.conf /usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7002/conf/redis.conf 1 2 3 4 如果上面設(shè)置了,還是不能開(kāi)機(jī)自啟動(dòng),則有可能是/etc/rc.d/rc.local沒(méi)有執(zhí)行權(quán)限,需要給一個(gè)執(zhí)行權(quán)限,如下: [root@localhost redis-5.0.5]# chmod +x /etc/rc.d/rc.local 1 |
關(guān)于“CentOS7怎么搭建Redis集群”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。