<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
環境說明:
redis使用的是6.2.6版本
主機 | IP | 系統 |
---|---|---|
master | 192.168.129.136 | redhat8 |
slave | 192.168.182.135 | redhat8 |
slave2 | 192.168.182.134 | redhat8 |
準備工作
// 三臺主機都要做 [root@master opt] wget https://download.redis.io/releases/redis-6.2.6.tar.gz //三臺主機都做 [root@master opt]# tar -zxf redis-6.2.6.tar.gz //編譯安裝 [root@master redis-6.2.6]# pwd //進入redis目錄 /opt/redis-6.2.6 [root@master redis-6.2.6]# yum -y install gcc gcc-c++ //安裝c語言編譯器 [root@master redis-6.2.6]# yum -y install make //安裝make編譯器 [root@master redis-6.2.6]# make MALLOC=libc
設定環境變數
// redis的二進位制檔案放在src目錄下 [root@master redis-6.2.6]# cat /etc/profile.d/redis.sh //為了能直接使用redis命令 export PATH=/opt/redis-6.2.6/src:$PATH [root@master redis-6.2.6]# source /etc/profile.d/redis.sh //使其生效 //啟動redis 啟動方式有以下兩種: [root@master redis-6.2.6]# vim redis.conf 257 daemonize yes //把no改為yes 啟動一: [root@master src]# ./redis-server //不建議用這種方式啟動 [root@master redis-6.2.6]# redis-server /opt/redis-6.2.6/redis.conf //推薦使用這種方式 啟動二: [root@master opt]# cat /usr/lib/systemd/system/redis.service [Unit] Description=redis server daemon After=network.target [Service] Type=forking ExecStart=/opt/redis-6.2.6/src/redis-server /opt/redis-6.2.6/redis.conf ExecStop=/bin/kill -s QUIT $MAINPID ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target [root@master opt]# systemctl daemon-reload [root@master opt]# systemctl enable --now redis.service [root@master opt]# ss -anlt | awk -F " *|:" 'NR==2{print $5}' //看到6379埠號說明成功 6379 進入使用者端的命令 redis-cli -p 6379 127.0.0.1:6379> [root@master redis-6.2.6]# redis-cli -p 6379 shutdown //關閉redis服務
以上操作三臺主機都需要做
現在所部署的哨兵叢集是基於redis主從的基礎上的,整體架構如下:
一個主節點(master)可擁有多個從節點(slave),從節點實現對主節點的複製,保證資料同步。而哨兵(sentinel)則對各節點進行監控,主要包括主節點存活檢測、主從執行情況檢測等,一旦主節點宕機,哨兵可自動進行故障轉移 (failover)、主從切換。
修改redis組態檔
建議在修改組態檔之前寫備份
//在master要做的事 [root@master redis-6.2.6]# mkdir logs 75 bind 192.168.129.136 //本機IP地址 94 protected-mode no 302 logfile "/opt/redis-6.2.6/logs/redis.log"
注意replicaof指定master的IP地址和埠號,在老版本上要做的事 slaveof
//在slave2上要做的事 [root@slave2 redis-6.2.6]# vim redis.conf 75 bind 192.168.129.135 //本機IP 477 replicaof 192.168.129.136 6379 master的IP和埠號 //在slave2上要做的事 [root@slave2 redis-6.2.6]# vim redis.conf 75 bind 192.168.129.135 //本機IP 477 replicaof 192.168.129.136 6379 master的IP和埠號
注意修改完組態檔之後需要重啟redis服務才能生效
[root@master redis-6.2.6]# redis-cli -h 192.168.129.136 -p 6379 192.168.129.136:6379> set name tom // 設定一個value值 OK [root@slave ~]# redis-cli -h 192.168.129.135 //這裡也可以不指定埠號,因為redis預設使用的事6379埠號 192.168.129.135:6379> get name "tom" [root@slave2 redis-6.2.6]# redis-cli -h 192.168.129.134 192.168.129.134:6379> get name "tom" ###主從同步成功
Redis Sentinel是Redis 的高可用性解決方案由一個或多個Sentinel(哨兵)範例組成。它可以監視任意多個主伺服器,以及這些主伺服器屬下的所有從伺服器,並在被監視的主伺服器進入下線狀態時,自動將下線主伺服器屬下的某個從伺服器升級為新的主伺服器,它的主要功能如下:
Sentinel 使用的演演算法核心是 Raft 演演算法,主要用途就是用於分散式系統,系統容錯,以及Leader選舉,每個Sentinel都需要定期的執行以下任務:
// 三臺主機做同樣的操作 [root@master redis-6.2.6]# vim sentinel.conf 26 daemonize yes 36 logfile "/opt/redis-6.2.6/logs/sentinel.conf" 84 sentinel monitor mymaster 192.168.129.136 6379 2 [root@master ~]# redis-sentinel /opt/redis-6.2.6/sentinel.conf //啟動哨兵 // 檢視哨兵資訊 [root@master ~]# redis-cli -h 192.168.129.136 -p 26379 192.168.129.136:26379> info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=192.168.129.136:6379,slaves=2,sentinels=3 [root@slave ~]# redis-cli -h 192.168.129.135 -p 26379 192.168.129.135:26379> info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=192.168.129.136:6379,slaves=2,sentinels=3 [root@slave2 ~]# redis-cli -h 192.168.129.134 -p 26379 192.168.129.134:26379> info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=192.168.129.136:6379,slaves=2,sentinels=3
模擬主機故障,進行容災切換
[root@master ~]# systemctl stop redis.service //關閉redis服務 [root@master redis-6.2.6]# ps -ef | grep redis //使用此命令找到sentinel程序,然後再kill掉sentinel的程序 //因為主機切換到了144主機,因此原來主機的組態檔也會隨之更改,所以在137啟動前需要更改組態檔,將其設定成144的從機: [root@master redis-6.2.6]# vim redis.conf 477 replicaof 192.168.129.134 6379 [root@master redis-6.2.6]# redis-server /opt/redis-6.2.6/redis.conf //啟動redis服務 [root@master redis-6.2.6]# systemctl restart redis.service //也可以使用此命令啟動redis服務 [root@master redis-6.2.6]# redis-sentinel /opt/redis-6.2.6/sentinel.conf //啟動sentinel服務 ##至此哨兵叢集搭建完畢
到此這篇關於redis搭建哨兵叢集的實現步驟的文章就介紹到這了,更多相關redis 哨兵叢集內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45