redis集群搭建

部署機(jī)器:
10-104-4-139
10-102-1-143
10-102-0-3
主節(jié)點(diǎn)3個(gè), 從節(jié)點(diǎn)3個(gè)
部署方法:
docker
三臺(tái)機(jī)器主從交替防止主從都在一臺(tái)機(jī)器情況下機(jī)器宕機(jī)的時(shí)候沒(méi)有從節(jié)點(diǎn)能夠恢復(fù)
一悴侵、docker環(huán)境搭建

// 安裝docker
yum install docker
// 啟動(dòng)
systemctl start docker
// 設(shè)置開(kāi)機(jī)啟動(dòng)
systemctl enable docker
// 安裝docker-compose
yum install dokcer-compose

二病蛉、docker-compose編寫
將redis-cluster(一主一從)容器與redis-exporter(用于prometheus監(jiān)控使用)結(jié)合到一起

version: '3.3'
services:
  redis-node-1:
    image: redis:6.2.4
    container_name: redis-node-1
    restart: always
    dns_search: .
    volumes:
      - "/usr/local/redis/etc/redis-node-1.conf:/etc/redis/redis.conf"
      - "/usr/local/redis/data/redis-node-1:/data"
#      - "/usr/local/redis/log/redis-node-1.log:/tmp/redis.log"
    network_mode: host
    command: redis-server /etc/redis/redis.conf

  redis-exporter-node-1:
    image: bitnami/redis-exporter:latest
    container_name: redis-node-1-exporter
    restart: always
    dns_search: .
    ports:
      - "9122:9121"
    networks:
      - redis-net
    entrypoint: redis_exporter --redis.addr 172.17.0.1:6391 --redis.password de22760d7e6ffdd8b288bf986c54e085

  redis-node-2:
    image: redis:6.2.4
    container_name: redis-node-2
    restart: always
    dns_search: .
    volumes:
      - "/usr/local/redis/etc/redis-node-2.conf:/etc/redis/redis.conf"
      - "/usr/local/redis/data/redis-node-2:/data"
#      - "/usr/local/redis/log/redis-node-2.log:/tmp/redis.log"
    network_mode: host
    command: redis-server /etc/redis/redis.conf

  redis-exporter-node-2:
    image: bitnami/redis-exporter:latest
    container_name: redis-node-2-exporter
    restart: always
    dns_search: .
    ports:
      - "9123:9121"
    networks:
      - redis-net
    entrypoint: redis_exporter --redis.addr 172.17.0.1:6392 --redis.password de22760d7e6ffdd8b288bf986c54e085

networks:
  redis-net:
    driver: bridge

redis配置

# 配置詳情參考https://blog.csdn.net/weixin_44236477/article/details/120339537
# 端口需要改成具體端口
port 6391
bind 0.0.0.0
loglevel warning
# 如果要使用docker的標(biāo)準(zhǔn)輸出就注釋該條
# logfile /tmp/redis.log
stop-writes-on-bgsave-error yes
rdbcompression no
rdbchecksum no
masterauth "de22760d7e6ffdd8b288bf986c54e085"
requirepass "de22760d7e6ffdd8b288bf986c54e085"
# 保護(hù)模式如果開(kāi)啟的話無(wú)法遠(yuǎn)程鏈接
protected-mode no
cluster-enabled yes
# 記錄集群節(jié)點(diǎn)信息
cluster-config-file nodes.conf
# 集群節(jié)點(diǎn)之間連接的超時(shí)時(shí)間(超過(guò)這個(gè)時(shí)間可能會(huì)導(dǎo)致被認(rèn)為掛掉導(dǎo)致頻繁的主從切換, 最好設(shè)置稍微大點(diǎn)這里設(shè)置12s)
cluster-node-timeout 12000
# 開(kāi)啟appendonly備份模式
appendonly yes
# 每秒鐘備份
appendfsync everysec
# 對(duì)aof文件進(jìn)行壓縮時(shí)是否執(zhí)行同步操作
no-appendfsync-on-rewrite no
# 當(dāng)當(dāng)前aof文件大小超過(guò)上一次重寫的aof文件大小的100%會(huì)再次進(jìn)行重寫 默認(rèn)為100
auto-aof-rewrite-percentage 200
# 重寫aof文件的大小最小值 默認(rèn)為64mb
auto-aof-rewrite-min-size 1024mb
# 可以配置值為1炒瘸。master的slave數(shù)量大于該值仓坞,slave才能遷移到其他孤立master上橱夭,如這個(gè)參數(shù)若被設(shè)為2嗤形,那么只有當(dāng)一個(gè)主節(jié)點(diǎn)擁有2 個(gè)可工作的從節(jié)點(diǎn)時(shí),它的一個(gè)從節(jié)點(diǎn)會(huì)嘗試遷移针贬。
cluster-migration-barrier 1
# 默認(rèn)情況下击费,集群全部的slot有節(jié)點(diǎn)負(fù)責(zé),集群狀態(tài)才為ok桦他,才能提供服務(wù)蔫巩。  設(shè)置為no,可以在slot沒(méi)有全部分配的時(shí)候提供服務(wù)快压。不建議打開(kāi)該配置圆仔,這樣會(huì)造成分區(qū)的時(shí)候,小分區(qū)的master一直在接受寫請(qǐng)求蔫劣,而造成很長(zhǎng)時(shí)間數(shù)據(jù)不一致
cluster-require-full-coverage no
# 一個(gè)lua腳本執(zhí)行的最大時(shí)間坪郭,單位為ms 默認(rèn)5000
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 512mb 215mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
repl-backlog-size 100mb
repl-backlog-ttl 3600
rename-command FLUSHALL ""
rename-command FLUSHDB ""

三、環(huán)境配置以及啟動(dòng)
在對(duì)應(yīng)的三臺(tái)機(jī)器依次執(zhí)行

mkdir -p /usr/local/redis && cd /usr/local/redis
mkdir data && mkdir etc && cd etc
vim redis-node-1.conf (將上面的redis配置復(fù)制進(jìn)去)
vim redis-node-2.conf (同上)
vim docker-compose.yml(將上面docker-compose復(fù)制進(jìn)行)
// 切記, 如果有開(kāi)啟防火墻的話要開(kāi)放redis的端口一起redis端口+10000端口(比如6379 16379)
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 6391,6392,16391,16392 -j ACCEPT (復(fù)制該句其中端口為你redis的端口 最好放到文件前面)
systemctl restart iptables
systemctl restart docker (docker沒(méi)有對(duì)宿主機(jī)防火墻的權(quán)限所以需要重啟同步)
// 啟動(dòng)容器脉幢, 如果出現(xiàn)該錯(cuò)誤ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule則重啟docker(systemctl restart docker)
docker-compose -f docker-compose.yml up -d 

切記docker搭建redis集群不支持自建網(wǎng)絡(luò)M嵛帧`氯瘛!否則在創(chuàng)建集群的時(shí)候會(huì)一直等待加入


image.png

四沪曙、redis集群構(gòu)建

// 隨意進(jìn)入一臺(tái)集群機(jī)器
redis-cli  -h 10.102.1.143 -p 6391 -a de22760d7e6ffdd8b288bf986c54e085  --cluster  create  10.104.4.139:6391  10.104.4.139:6392  10.102.0.3:6391  10.102.0.3:6392  10.102.1.143:6391  10.102.1.143:6392  --cluster-replicas  1

image.png

五奕污、管理平臺(tái)以及監(jiān)控

  1. 搭建集群管理平臺(tái)redisinsight
mkdir -p /usr/local/redisinsight
chmod 777 /usr/local/redisinsight
docker run -d --restart=always --name redisinsight -v /usr/local/redisinsight:/db -p 8001:8001 redislabs/redisinsight:latest
// 需要做內(nèi)存分析的把自己rdb的目錄也掛載進(jìn)去
image.png
  1. 將redis-exporter注冊(cè)進(jìn)prometheus
    這邊promehteus采用consul做服務(wù)發(fā)現(xiàn)所以忘c(diǎn)onsul里面注冊(cè)服務(wù)就行


    image.png

    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市液走,隨后出現(xiàn)的幾起案子碳默,更是在濱河造成了極大的恐慌,老刑警劉巖缘眶,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腻窒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡磅崭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門瓦哎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砸喻,“玉大人,你說(shuō)我怎么就攤上這事蒋譬「畹海” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵犯助,是天一觀的道長(zhǎng)癣漆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)剂买,這世上最難降的妖魔是什么惠爽? 我笑而不...
    開(kāi)封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮瞬哼,結(jié)果婚禮上婚肆,老公的妹妹穿的比我還像新娘。我一直安慰自己坐慰,他們只是感情好较性,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著结胀,像睡著了一般赞咙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上糟港,一...
    開(kāi)封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天攀操,我揣著相機(jī)與錄音,去河邊找鬼秸抚。 笑死崔赌,一個(gè)胖子當(dāng)著我的面吹牛意蛀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播健芭,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼县钥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了慈迈?” 一聲冷哼從身側(cè)響起若贮,我...
    開(kāi)封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痒留,沒(méi)想到半個(gè)月后谴麦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伸头,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年匾效,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恤磷。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡面哼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扫步,到底是詐尸還是另有隱情魔策,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布河胎,位于F島的核電站闯袒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏游岳。R本人自食惡果不足惜政敢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胚迫。 院中可真熱鬧堕仔,春花似錦、人聲如沸晌区。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)朗若。三九已至恼五,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哭懈,已是汗流浹背灾馒。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留遣总,地道東北人睬罗。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓轨功,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親容达。 傳聞我的和親對(duì)象是個(gè)殘疾皇子古涧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一、單節(jié)點(diǎn)實(shí)例 單節(jié)點(diǎn)實(shí)例還是比較簡(jiǎn)單的花盐,平時(shí)做個(gè)測(cè)試羡滑,寫個(gè)小程序如果需要用到緩存的話,啟動(dòng)一個(gè) Redis 還是...
    八重櫻勿忘閱讀 496評(píng)論 0 1
  • 一.資源準(zhǔn)備 準(zhǔn)備三臺(tái)機(jī)器(能連外網(wǎng)算芯,能相互ping通) 172.29.2.10 172.29.2.11 ...
    657455400閱讀 182評(píng)論 0 0
  • 環(huán)境準(zhǔn)備 VM準(zhǔn)備3臺(tái)機(jī)器centos7環(huán)境:192.168.217.132 root root192.168...
    風(fēng)陵渡口誤終身閱讀 312評(píng)論 0 1
  • redis集群需要至少三個(gè)master節(jié)點(diǎn)柒昏,我們這里搭建三個(gè)master節(jié)點(diǎn),并且給每個(gè)master再搭建一個(gè)sl...
    一個(gè)程序猿的自述閱讀 851評(píng)論 0 6
  • 1.安裝docker并配置鏡像源 ? 參考 http://www.reibang.com/p/827a2...
    澤濟(jì)天下閱讀 263評(píng)論 0 1