linux服務(wù)器中搭建redis6.0.7集群
一、安裝redis
源碼安裝:
1.下載源碼包:
wget http://download.redis.io/releases/redis-6.0.7.tar.gz
2.解壓到指定目錄下:
tar xf redis-6.0.7.tar.gz -C /usr/local/
二、編譯安裝
下載編譯安裝Redis的依賴,因為Redis是C語言編寫的,所以主要安裝C的編譯環(huán)境
yum install gcc g++ gcc-c++ make -y
進入redis文件夾進行編譯安裝
cd /usr/local/redis-6.0.7 # 開始編譯 make -j 2
編譯安裝過程中出現(xiàn)大量錯誤如下圖所示:
這是因為安裝6版本的Redis需要5.3以上版本的gcc,而先前YUM安裝的gcc默認安裝的是4.8.5版本。
# 查看gcc版本 gcc -v 顯示gcc版本為4.8.5,需要升級gcc
升級gcc到9版本
yum install centos-release-scl -y yum install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils -y
然后啟用gcc 9。我看到有些博客中寫到啟用gcc9的方法如下
# 臨時啟用gcc 9 scl enable devtoolset-9 bash # 長期啟用gcc 9 echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile #使配置生效 source /etc/profile
這種臨時啟用的方法發(fā)現(xiàn)單獨在終端執(zhí)行沒有問題,不過把它寫到腳本里執(zhí)行的時候,執(zhí)行到這一句就會退出腳本。所以在腳本中我直接使用source /opt/rh/devtoolset-9/enable臨時啟用gcc 9。
執(zhí)行完畢后gcc升級到9.3.1版本
升級好gcc后重新編譯
# 清除之前編譯的可執(zhí)行文件及配置文件。 make clean make -j 2 make install
三、啟動Redis
在redis的src目錄下執(zhí)行./redis-server,出現(xiàn)如下界面說明Redis算是裝好了。不過有幾個警告需要處理一下,解決的方法在警告信息中已經(jīng)給出了。
#啟動redis服務(wù) [root@mysql_master src]# ./redis-server #解決警告信息 # 第一個警告的解決方法 echo net.core.somaxconn=511 >> /etc/sysctl.conf # 第二個警告的解決方法 echo vm.overcommit_memory=1 >> /etc/sysctl.conf # 使/etc/sysctl.conf生效 sysctl -p # 第三個警告的解決方法 echo never > /sys/kernel/mm/transparent_hugepage/enabled #之后再重新執(zhí)行./redis-server,可以看到,警告信息消失了。Redis服務(wù)順利啟動。
此時Redis服務(wù)在前臺執(zhí)行,修改Redis的配置文件,讓Redis服務(wù)可以在后臺運行
vim /usr/local/redis-6.0.7/redis.conf 將daemonize no改為daemonize yes,然后使用配置文件重新啟動redis 關(guān)閉加密保護,修改數(shù)據(jù)存儲路徑....... #redis已成功在后臺啟動 [root@mysql_master redis-6.0.7]# ./src/redis-server redis.conf #測試redis是否正常工作 [root@mysql_master redis-6.0.7]# ./src/redis-cli [root@mysql_master src]# ./redis-cli 127.0.0.1:6379> ping PONG
后臺啟動:
四、配置主從
啟動主結(jié)點的redis服務(wù)
[root@mysql_master redis-6.0.7]# ./src/redis-server redis.conf
修改兩臺從結(jié)點的redis.conf配置文件,指定主節(jié)點ip和端口
注意:redis6版本和redis4版本配置主從的名稱不一樣
replicaof 192.168.232.11 6379 主ip+主端口
修改完后啟動兩臺從的redis,讀取redis.conf才能生效
[root@mysql_slave1 redis-6.0.7]# ./src/redis-server redis.conf
五、redis-sentinel---哨兵模式
部署Sentinel:
#查看sentinel.conf里面配置信息 [root@mysql_master redis-6.0.7]# grep -Ev "^$|#" sentinel.conf 三臺都要配置,具體內(nèi)容如下所示,可以刪完然后復(fù)制上去 ############################################################### port 26379 daemonize yes #后臺啟動 pidfile /var/run/redis-sentinel.pid logfile "/var/log/redis/sentinel.log" sentinel announce-ip 0.0.0.0 dir /tmp sentinel monitor mymaster 192.168.232.11 6379 1 sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 60000 sentinel deny-scripts-reconfig yes ##############################################################
注意:一定要開啟后臺啟動,否則Ctrl+c退出,sentinel會自動關(guān)閉
啟動,三臺都要啟動
#讀取sentinel配置文件,三臺都一樣啟動 [root@mysql_master redis-6.0.7]# ./src/redis-sentinel sentinel.conf #查看進程是否啟動: [root@mysql_master redis-6.0.7]# ps -ef | grep redis-sentinel
sentinel操作
[root@mysql_master redis-6.0.7]# ./src/redis-sentinel sentinel.conf [root@mysql_master redis-6.0.7]# ./src/redis-cli -p 26379 127.0.0.1:26379> sentinel master mymaster 1) "name" 2) "mymaster" 3) "ip" 4) "192.168.232.11" 5) "port" 6) "6379" 7) "runid" 8) "4e5793b30c65c08c1f784a045dbb81f8a327414f" 9) "flags" 10) "master" 127.0.0.1:26379> sentinel slaves mymaster 1) 1) "name" 2) "192.168.232.12:6379" 3) "ip" 4) "192.168.232.12" 5) "port" 6) "6379" 7) "runid" 8) "7172974215efed734fd000bcd9fcc340dd8796ae" 9) "flags" 10) "slave" 11) "link-pending-commands" 2) 1) "name" 2) "192.168.232.20:6379" 3) "ip" 4) "192.168.232.20" 5) "port" 6) "6379" 7) "runid" 8) "9a4f10acbd6c339df8930a1478455ecaffc8c5ca" 9) "flags" 10) "slave"
六、redis cluster集群搭建
環(huán)境準備
1.準備三機器,關(guān)閉防火墻和selinux
2.制作解析并相互做解析,即三臺互相ping通,主機名可改可不改。
注:規(guī)劃架構(gòu)兩種方案,一種是單機多實例,這里我們采用多機器部署:
三臺機器,每臺機器上面兩個redis實例,一個master一個slave,第一列做主庫,第二
列做備庫
#記得選出控制節(jié)點 redis-cluster01 192.168.232.11 7000、7001 redis-cluster02 192.168.232.12 7002、7003 redis-cluster03 192.168.232.20 7004、7005
安裝redis 并配置redis-cluster
1、redis安裝 ,注意3臺機器都需要安裝redis 服務(wù)
創(chuàng)建實例目錄
#先裝一個工具tree yum install tree #創(chuàng)建節(jié)點目錄:按照規(guī)劃在每臺redis節(jié)點的安裝目錄中創(chuàng)建對應(yīng)的目錄(以端口號命名) #具體創(chuàng)建過程不再描述 查看目錄結(jié)構(gòu)(六臺) [root@mysql_master src]# cd /redis [root@mysql_master redis]# tree . └── cluster ├── 7000 │?? ├── conf │?? │?? ├── nodes.conf │?? │?? └── redis.conf │?? ├── data │?? │?? ├── appendonly.aof │?? │?? └── dump.rdb │?? ├── log │?? │?? └── redis.log │?? └── redis.pid └── 7001 ├── conf │?? ├── nodes.conf │?? └── redis.conf ├── data │?? ├── appendonly.aof │?? └── dump.rdb ├── log │?? └── redis.log └── redis.pid #其他五臺除了名字不一樣,配置文件不一樣,其他都一樣
配置官方配置文件,去掉#開頭的和空格行
#cat redis.conf | grep -v ^# | grep -v ^$
修改配置文件
[root@mysql_master redis]# cd cluster/7000/conf [root@mysql_master conf]# cat redis.conf bind 0.0.0.0 protected-mode no port 7000 daemonize yes dir /redis/cluster/7000/data cluster-enabled yes cluster-config-file /redis/cluster/7000/conf/nodes.conf cluster-node-timeout 5000 appendonly yes daemonize yes pidfile /redis/cluster/7000/redis.pid logfile /redis/cluster/7000/log/redis.log #其他五臺修改一下目錄
創(chuàng)建集群
注意:創(chuàng)建集群:在其中一個節(jié)點操作就可以
redis節(jié)點搭建起來后,需要完成redis cluster集群搭建,搭建集群過程中,需要保證6個redis實例都是運行狀態(tài)
Redis是根據(jù)IP和Port的順序,確定master和slave的,所以要排好序,再執(zhí)行。 參數(shù): --cluster-replicas 1:表示為集群中的每個主節(jié)點創(chuàng)建一個從節(jié)點.書寫流程:主節(jié)點 ip+port 對應(yīng)一個從節(jié)點ip+port(正常是前面三個節(jié)點為主節(jié)點,后面的為從節(jié)點) #先把六臺redis啟動起來再啟動集群 [root@mysql_master src]# ./redis-server /redis/cluster/7000/conf/redis.conf [root@mysql_master src]# ./redis-server /redis/cluster/7001/conf/redis.conf [root@mysql_master src]# ./redis-cli --cluster create --cluster-replicas 1 192.168.232.11:7000 192.168.232.11:7001 192.168.232.12:7002 192.168.232.12:7003 192.168.232.20:7004 192.168.232.20:7005 .................... 輸入yes,等待集群創(chuàng)建 出現(xiàn)以下信息證明創(chuàng)建成功 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
查看是否切換成集群模式
[root@mysql_master conf]# ps -ef | grep redis
七、redis cluster 向客戶端擴展
轉(zhuǎn)載請注明出處,未完待續(xù)...
到此這篇關(guān)于linux服務(wù)器中搭建redis6.0.7集群的文章就介紹到這了,更多相關(guān)搭建redis6.0.7內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
redis中hash數(shù)據(jù)結(jié)構(gòu)及說明
這篇文章主要介紹了redis中hash數(shù)據(jù)結(jié)構(gòu)及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01Spring Boot整合Redis實現(xiàn)訂單超時處理問題
這篇文章主要介紹了Spring Boot整合Redis實現(xiàn)訂單超時處理,通過這個基本的示例,你可以了解如何使用Spring Boot和Redis來處理訂單超時問題,并根據(jù)需要進行擴展和定制,需要的朋友可以參考下2023-11-11