柚子快報邀請碼778899分享:NOsql數(shù)據(jù)庫Redis
關(guān)系型數(shù)據(jù)庫和 NoSQL 數(shù)據(jù)庫
Redis的源碼安裝
編譯
vim /etc/redis/6379.conf
bind改成* -::*?
關(guān)閉protected模式
Redis 主從復(fù)制
主從同步過程
環(huán)境配置
redis-node1 master
redis-node2 slave1
redis-node3 slave2
slave中配置
vim /etc/redis/6379.conf
master中操作
slave中查看master的操作
Redis的哨兵(高可用)
三臺開啟哨兵模式,這里可知10為master
將10手動shutdown
20 30開始投票,認為10已經(jīng)掛掉,并且選舉30為新的master
遠程連接30主機,看到只有一臺slave
在10開啟redis
此時看到30的slave數(shù)量為2
恢復(fù)10為master
在整個架構(gòu)中可能會出現(xiàn)的問題
Redis Cluster(無中心化設(shè)計)
Redis Cluster 工作原理
在哨兵sentinel機制中,可以解決redis高可用問題,即當(dāng)master故障后可以自動將slave提升為master, 從而可以保證redis服務(wù)的正常使用,但是無法解決redis單機寫入的瓶頸問題,即單機redis寫入性能受 限于單機的內(nèi)存大小、并發(fā)數(shù)量、網(wǎng)卡速率等因素。
redis 3.0版本之后推出了無中心架構(gòu)的redis cluster機制,在無中心的redis集群當(dāng)中,其每個節(jié)點保存 當(dāng)前節(jié)點數(shù)據(jù)和整個集群狀態(tài),每個節(jié)點都和其他所有節(jié)點連接
這里我們采用三主(10 20 30)三從(110 120 130)
首先我們需要保證一個純凈的實驗環(huán)境,下載redis
用123456進行驗證 這里還不能創(chuàng)建用戶
將已經(jīng)node1已經(jīng)編輯好的文件拷貝到其他主機
多臺主機一起操作,查看6379端口已經(jīng)開啟
創(chuàng)建redis-cluster
設(shè)定主備,并分配哈希槽
這里看id可知
10(master)對應(yīng)120(slave)
20(master)對應(yīng)130(slave)
30(master)對應(yīng)110(slave)
這個是隨機分配的
檢測redis集群狀態(tài)
此時我們想創(chuàng)建用戶,系統(tǒng)告訴我們哈希槽落在20主機上
那么我們來20主機上創(chuàng)建用戶
集群擴容
這里我們做4主4從,添加40和140主機
將node2編輯好的文件復(fù)制到40和140主機
redis-cli -a 123456 --cluster add-node 172.25.254.40:6379 172.25.254.20:6379
將40主機加入到20所在的哈希槽中
check時看到40已經(jīng)已經(jīng)加入組,雖然是master但是(0 slots),說明不能存儲數(shù)據(jù),所以我們需要劃分哈希槽位
這里我們將所有主機劃分4096個槽位
此時我們看到40已經(jīng)擁有自己的槽位
我們再將140作為備加入組
check看到140已經(jīng)加入,且與40互為主備
clsuter集群維護(集群刪除)
這里140我們直接用 redis-cli -a 123456 --cluster del-node 172.25.254.140:6379 加id即可刪除
但是40有槽位,所以我們需要先劃分槽位再刪除
node1為40的id,這里我們直接將40的槽位都給20
看到40沒有槽位,20槽位翻倍,我們再刪除40
記錄一下我們八臺虛擬機同時開
柚子快報邀請碼778899分享:NOsql數(shù)據(jù)庫Redis
相關(guān)閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。