使用docker-compose搭建redis-cluster集群

前言

如果你也因為centos的gcc版本落后導致redis編譯安裝不通過而煩惱,大可以試一試用docker去搭建redis集群。本文以單節點搭建redis-cluster三主三從為例。

  • ip:192.168.0.10
  • redis信息:
    • 客戶端連接端口:7001 -7006
    • 集群間通信端口:17001 - 17006
    • 密碼:123456
  • 版本:
    • docker:18.06
    • docker-compose:1.24
    • redis:6.2.4
    • centos: 7.4

準備

  1. 下載redis鏡像
docker pull redis:6.2.4
  1. 準備redis的配置文件:redis.conf。主要修改端口和ip
port 7001
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 123456
masterauth 123456
cluster-announce-ip 192.168.0.10
cluster-announce-port 7001
cluster-announce-bus-port 17001
  1. 準備持久化目錄
mkdir -p /home/web/redis
cd /home/web/redis
for i in $(seq 7001 7006); do mkdir -p /home/web/redis/node_${i}/{conf,data};done
# 或者: for i in $(seq 7001 7006); do mkdir -p ./node_${i}/{conf,data};done
# 假設redis.conf在 /home/web/redis,且當前目錄為/home/web/redis
for i in $(seq 7001 7006); do sed "s/7001/${i}/g" /home/web/redis/redis.conf > /home/web/redis/node_${i}/conf/redis.conf;done
# 或者: for i in $(seq 7001 7006); do sed "s/7001/${i}/g" ./redis.conf > ./node_${i}/conf/redis.conf;done

配置docker-compose.yaml

  1. 編寫docker-compose.yaml(注意路徑、密碼、IP和端口號)
version: "3"
# 定義服務,可以多個
services:redis-7001: # 服務名稱image: redis:6.2.4  # 創建容器時所需的鏡像container_name: redis-7001 # 容器名稱restart: always # 容器總是重新啟動volumes: # 數據卷,目錄掛載- /home/web/redis/node_7001/conf/redis.conf:/usr/local/etc/redis/redis.conf- /home/web/redis/node_7001/data:/dataports:- 7001:7001- 17001:17001command:redis-server /usr/local/etc/redis/redis.confredis-7002: # 服務名稱image: redis:6.2.4  # 創建容器時所需的鏡像container_name: redis-7002 # 容器名稱restart: always # 容器總是重新啟動volumes: # 數據卷,目錄掛載- /home/web/redis/node_7002/conf/redis.conf:/usr/local/etc/redis/redis.conf- /home/web/redis/node_7002/data:/dataports:- 7002:7002- 17002:17002command:redis-server /usr/local/etc/redis/redis.confredis-7003: # 服務名稱image: redis:6.2.4  # 創建容器時所需的鏡像container_name: redis-7003 # 容器名稱restart: always # 容器總是重新啟動volumes: # 數據卷,目錄掛載- /home/web/redis/node_7003/conf/redis.conf:/usr/local/etc/redis/redis.conf- /home/web/redis/node_7003/data:/dataports:- 7003:7003- 17003:17003command:redis-server /usr/local/etc/redis/redis.confredis-7004: # 服務名稱image: redis:6.2.4  # 創建容器時所需的鏡像container_name: redis-7004 # 容器名稱restart: always # 容器總是重新啟動volumes: # 數據卷,目錄掛載- /home/web/redis/node_7004/conf/redis.conf:/usr/local/etc/redis/redis.conf- /home/web/redis/node_7004/data:/dataports:- 7004:7004- 17004:17004command:redis-server /usr/local/etc/redis/redis.confredis-7005: # 服務名稱image: redis:6.2.4  # 創建容器時所需的鏡像container_name: redis-7005 # 容器名稱restart: always # 容器總是重新啟動volumes: # 數據卷,目錄掛載- /home/web/redis/node_7005/conf/redis.conf:/usr/local/etc/redis/redis.conf- /home/web/redis/node_7005/data:/dataports:- 7005:7005- 17005:17005command:redis-server /usr/local/etc/redis/redis.confredis-7006: # 服務名稱image: redis:6.2.4  # 創建容器時所需的鏡像container_name: redis-7006 # 容器名稱restart: always # 容器總是重新啟動volumes: # 數據卷,目錄掛載- /home/web/redis/node_7006/conf/redis.conf:/usr/local/etc/redis/redis.conf- /home/web/redis/node_7006/data:/dataports:- 7006:7006- 17006:17006command:redis-server /usr/local/etc/redis/redis.conf
  1. 啟動
docker-compose -f ./docker-compose.yaml up -d
# 如果docker-compose.yaml文件在當前路徑: 
# docker-compose up -d

搭建集群

  1. 進入任意一個redis容器
docker exec -it redis-7001 bash
  1. 創建集群
# 注意IP、端口號和密碼
echo -e 'yes' | redis-cli -a 123456 --cluster create 192.168.0.10:7001 192.168.0.10:7002 192.168.0.10:7003 192.168.0.10:7004 192.168.0.10:7005 192.168.0.10:7006 --cluster-replicas 1
  1. 檢查集群狀態
# 查看集群狀態
redis-cli -a 123456 -h 192.168.0.10 -p 7001 cluster info
# 查看集群節點
redis-cli -a 123456 -h 192.168.0.10 -p 7001 cluster nodes

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85966.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85966.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85966.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【LLaMA-Factory 實戰系列】二、WebUI 篇 - Qwen2.5-VL 多模態模型 LoRA 微調保姆級教程

【LLaMA-Factory 實戰系列】二、WebUI 篇 - Qwen2.5-VL 多模態模型 LoRA 微調保姆級教程 1. 引言1.1 為什么選擇 Qwen2.5-VL-3B-Instruct?1.2 環境要求 2. 環境搭建2.1 安裝 LLaMA-Factory2.2 驗證安裝 3. 數據集準備與配置3.1 數據集結構3.2 數據格式3.3 數據集聲明…

風險矩陣與灰色綜合評價

一、風險矩陣(Risk Matrix) 1. 定義與原理 定義:風險矩陣是一種通過二維網格(可能性 vs. 后果嚴重程度)可視化展示風險等級的工具,用于優先級排序和決策支持。核心要素: 橫軸(X軸&…

谷歌瀏覽器電腦版官方下載- Google Chrome官方網頁版入口

谷歌瀏覽器(Google Chrome)是一款由谷歌公司開發的免費網頁瀏覽器,自2008年首次發布以來,迅速成為全球最受歡迎的瀏覽器之一。它以簡潔的界面設計、快速的瀏覽速度和強大的安全性能而聞名。谷歌瀏覽器支持多種操作系統&#xff0c…

垂直電商供應鏈平臺:重構產業生態,驅動數字化增長

垂直電商供應鏈平臺:重構產業生態,驅動數字化增長 在電商行業競爭日益激烈的當下,垂直電商供應鏈平臺憑借對細分領域的深度聚焦與數字化能力,成為產業升級的關鍵引擎。本文圍繞垂直電商供應鏈平臺的架構、價值及生態構建展開&…

VSCode 插件 Remote - SSH:開啟高效遠程開發之旅

在當今的軟件開發領域,遠程開發已經成為了一種越來越流行的工作方式。無論是分布式團隊協作,還是需要在不同環境中進行開發,遠程開發都能為開發者帶來極大的便利。而 VSCode 的 Remote - SSH 插件,就是一款能夠幫助開發者實現高效…

亞矩陣云手機+Whatnot:直播電商的自動化增長引擎

在直播電商蓬勃發展的今天,Whatnot作為北美領先的收藏品和潮流商品拍賣平臺,吸引了大量賣家和收藏愛好者。然而,高效運營多個賬號、管理直播場次、優化出價策略等挑戰,讓許多商家難以規模化經營。??亞矩陣云手機??與??Whatn…

關于vue.mixin與vue.use的用法分析

背景。源碼不會讀,不清楚的問大模型。特別是對平常開發太會用到的情形。 vue.mixin。是將每一個頁面注入mixin的內容。會對頁面中注入$uStore而不是方便獲取狀態信息。 vue.use。按裝的插件。用于封裝完整的功能,如UI庫,路由攔截器等&…

MySQL 8.x配置MGR高可用+ProxySQL讀寫分離(二):ProxySQL配置MySQL代理及讀寫分離

#作者:stackofumbrella 文章目錄 ProxySQL簡介ProxySQL架構ProxySQL的安裝與配置在不同層次間移動配置 ProxySQL簡介 ProxySQL是基于MySQL的一款開源的中間件的產品,是一個靈活的MySQL代理層,可以實現讀寫分離,支持Query路由功能…

基于 Python Flask 的 B/S 架構項目的軟件設計思路

文章目錄 基于 Python Flask 的 B/S 架構項目的軟件設計思路1. 引言2. B/S架構概述2.1 什么是B/S架構2.2 B/S架構的組成層次2.3 B/S vs C/S架構對比2.4 現代B/S架構的發展趨勢 3. Flask在B/S架構中的定位3.1 Flask作為B/S架構的后端框架3.2 Flask的架構優勢3.3 Flask在不同B/S架…

AntV F2入門教程

以下教程將系統地介紹 AntV?F2(移動端可視化引擎)的核心 組件 API,包含安裝與引入、畫布與圖表、數據映射、幾何標記、坐標軸、圖例、提示、標注和滾動條等,每個 API 都附帶完整示例代碼,幫助你快速掌握 F2 用法。 一…

退休時醫療保險補繳的基數影響什么

退休時醫療保險的補繳基數主要影響補繳金額、醫保個人賬戶劃入待遇、終身醫保待遇的享受條件等關鍵方面。以下是具體分析: 1. 影響補繳金額的多少 補繳基數通常以退休時上年度全省/市職工月平均工資或本人退休前繳費基數為基準(各地政策不同&#xff09…

conda導出環境文件requirements.txt

conda導出的幾種方式 方式一:使用pip freeze(推薦) 如果你主要使用 pip 安裝包,且環境中的包都兼容 PyPI,可以直接用 pip 導出: conda activate your_env_name # 激活環境(若未激活&#xf…

華為云 Flexus+DeepSeek 征文|增值稅發票智能提取小工具:基于大模型的自動化信息解析實踐

華為云 FlexusDeepSeek 征文|增值稅發票智能提取小工具:基于大模型的自動化信息解析實踐 前言背景 企業財務處理中,增值稅發票信息手動提取存在效率低、易出錯等痛點,華為云 Flexus 彈性算力聯合 DeepSeek 大模型,通過…

亞馬遜選品 家具或藝術?指紋技術重構兩者

58%毛利!生物識別首飾盒代理 奢侈品零售的隱藏金礦:安防產品的毛利是普通家居的3倍! 核心數據 零售價 4,900 | 代理價 1,990 → 毛利58% 零庫存風險:90天寄售周期 72小時售罄:貝弗利山莊快閃店賣出47臺 首批10家特權…

面試150 加油站

思路 此題,我們從貪心算法的角度進行思考。通過計算凈消耗,如果總的凈消耗小于0,說明無論如何都不能環路行駛一周。我們通過定義一個start起點,通過遍歷數組計算凈消耗,如果凈消耗小于0,重新置0&#xff0…

2025年滲透測試面試題總結-滲透測試工程師(題目+回答)

安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 目錄 滲透測試工程師 1. 自我介紹 2. 印象深刻的滲透案例:電商平臺供應鏈攻擊 3. 滲透測試標準化流…

Vulkan 學習筆記15—Mipmap 與多重采樣

一、Mipmap 生成總結 一、Mipmap 基礎概念 定義:Mipmap 是圖像預先計算的縮小版本,每個層級寬高為前一層的一半,用作細節級別(LOD)。作用: 遠離相機的對象使用較小層級采樣,提升渲染速度。避免…

HarmonyOS隱私保護全攻略:從入門到精通

📱 HarmonyOS隱私保護全攻略:從入門到精通 🛡? 大家好呀!今天咱們來聊聊移動互聯網時代最讓人頭疼的問題之一 —— 隱私保護!隨著HarmonyOS生態越來越豐富,這個問題也變得格外重要啦!? &…

《使用IDEA插件部署Spring Boot項目到Docker》

準備工作 確保已安裝Docker并已啟動/本地也需要安裝Docker IDEA中已安裝Docker插件(通常已預裝) 項目是基于Spring Boot的Maven或Gradle項目 1. 配置Docker連接 打開IDEA設置(File > Settings)導航到Build, Execution, Deployment > Docker點擊…

植物神經小知識

在消化系統方面,患者可能長期飽受胃痛、胃脹、食欲不振、惡心嘔吐、腹瀉或便秘交替的折磨。吃任何食物都味同嚼蠟,體重也會在短時間內大幅波動。在心血管系統,持續性的心悸、胸悶、胸痛讓人仿佛時刻處于 “心臟病發作” 的恐懼之中&#xff0…