Redis集群安裝(三主三從一哨兵)

Redis集群安裝(三主三從一哨兵)

一,搭建環境

? 在三臺服務器上分別搭建redis并測試是否能啟動(搭建方法)

二,Redis cluster三主三從

配置環境變量

vim /etc/profile
#添加如下內容
export REDIS_HOME=/usr/local/redis/redis-6.0.5
export PATH=$PATH:$REDIS_HOME/bin

1.搭建節點

以一臺為例子,其他可以節點一樣,重復操作即可。建議在三臺機器上搭建,一臺機器一主一從

①創建文件夾
mkdir -p /usr/local/redis/redis_cluster/6380/conf/ mkdir -p /usr/local/redis/redis_cluster/6380/logs/ mkdir -p /usr/local/redis/redis_cluster/6380/data/mkdir -p /usr/local/redis/redis_cluster/6381/conf/mkdir -p /usr/local/redis/redis_cluster/6381/logs/ mkdir -p /usr/local/redis/redis_cluster/6381/data/
②創建配置文件

6380節點

vim /usr/local/redis/redis_cluster/6380/conf/redis.conf

文件內容:

# bind 127.0.0.1 這一行給注釋掉,這里的bind指的是只有指定的網段才能遠程訪問這個redis,注釋掉后,就沒有這個限制了。
#bind 127.0.0.1
# 設置端口,區分集群中Redis的實例
port 6380
# 后臺運行
daemonize yes
# pid進程文件名,以端口號命名
pidfile /var/run/redis-6380.pid
# 日志文件名稱,以端口號為目錄來區分
logfile /usr/local/redis/redis_cluster/6380/logs/redis.log
# 數據文件存放地址,以端口號為目錄名來區分
dir /usr/local/redis/redis_cluster/6380/data
# 啟用集群
cluster-enabled yes
# 配置每個節點的配置文件,同樣以端口號為名稱
cluster-config-file nodes_6380.conf
# 配置集群節點的超時時間
cluster-node-timeout 15000
# 啟動AOF增量持久化策略
appendonly yes
# 發生改變,則記錄日志
appendfsync always#900 秒內至少有 1 個 key 被改變
save 900 1
#300 秒內至少有 300 個 key 被改變
save 300 10
#60 秒內至少有 10000 個 key 被改變
save 60 10000
#  后臺存儲錯誤停止寫。
stop-writes-on-bgsave-error yes
#  存儲至本地數據庫時(持久化到 rdb 文件)是否壓縮數據,默認為 yes
rdbcompression yes
# RDB 文件的是否直接偶像 chcksum
rdbchecksum yes
#  本地持久化數據庫文件名,默認值為 dump.rdb
dbfilename dump.rdb
# 密碼,注意集群各節點密碼要保持一致
requirepass cquisse

6381節點

vim /usr/local/redis/redis_cluster/6381/conf/redis.conf

文件內容:

# bind 127.0.0.1 這一行給注釋掉,這里的bind指的是只有指定的網段才能遠程訪問這個redis,注釋掉后,就沒有這個限制了。
#bind 127.0.0.1
# 設置端口,區分集群中Redis的實例
port 6381
# 后臺運行
daemonize yes
# pid進程文件名,以端口號命名
pidfile /var/run/redis-6381.pid
# 日志文件名稱,以端口號為目錄來區分
logfile /usr/local/redis/redis_cluster/6381/logs/redis.log
# 數據文件存放地址,以端口號為目錄名來區分
dir /usr/local/redis/redis_cluster/6381/data
# 啟用集群
cluster-enabled yes
# 配置每個節點的配置文件,同樣以端口號為名稱
cluster-config-file nodes_6381.conf
# 配置集群節點的超時時間
cluster-node-timeout 15000
# 啟動AOF增量持久化策略
appendonly yes
# 發生改變,則記錄日志
appendfsync always#900 秒內至少有 1 個 key 被改變
save 900 1
#300 秒內至少有 300 個 key 被改變
save 300 10
#60 秒內至少有 10000 個 key 被改變
save 60 10000
#  后臺存儲錯誤停止寫。
stop-writes-on-bgsave-error yes
#  存儲至本地數據庫時(持久化到 rdb 文件)是否壓縮數據,默認為 yes
rdbcompression yes
# RDB 文件的是否直接偶像 chcksum
rdbchecksum yes
#  本地持久化數據庫文件名,默認值為 dump.rdb
dbfilename dump.rdb
# 密碼,注意集群各節點密碼要保持一致
requirepass cquisse

2.設置開機啟動

vim /etc/rc.local
#添加如下內容
/usr/local/redis/redis-6.0.5/bin/redis-server /usr/local/redis/redis_cluster/6380/conf/redis.conf
/usr/local/redis/redis-6.0.5/bin/redis-server /usr/local/redis/redis_cluster/6381/conf/redis.conf

如果開機啟動不生效,可以執行 chmod +x /etc/rc.d/rc.local

3.啟動各個節點,創建集群,檢查狀態

redis-server /usr/local/redis/redis_cluster/6380/conf/redis.conf
redis-server /usr/local/redis/redis_cluster/6381/conf/redis.conf

查看啟動情況

ps -ef|grep redis root 1535085 1 0 18:05 ? 00:00:32 redis-server [ip]6380 [cluster] root 1535625 1 2 18:08 ? 00:01:22 redis-server [ip]:6381 [cluster] root 1546480 19893 0 19:10 pts/0 00:00:00 grep --color=auto redis

創建集群,這里的IP是外網IP,-a后面是密碼,2>/dev/null 是將標準錯誤忽略。要確保加入的節點是empty。如果不為空,連接節點執行flushall \ flushdb\ cluster reset

在Redis集群中,連接節點執行flushall / flushdb命令或者cluster reset命令都會對數據進行清除或者重置,但是它們的作用不一樣。 flushall 命令會清空當前Redis 實例中的所有數據庫,包括主庫和從庫中的所有數據,是一個危險的命令,會導致所有數據的丟失. flushdb命令會清空當前Redis實例中指定的數據庫,如果沒有指定參數,則默認清空的是所有數據庫中的數據。 cluster reset命令會使Redis集群回到初始狀態,重置集群中所有的節點,包括主節點、從節點和插槽分配情況等,此命令也是一個危險命令,會導致所有數據的丟失。 這些命令通常在進行Redis.集群的測試、部署、維護等工作時使用,但一定要在謹慎的情況下使用,以免造成數據的意外丟失。

redis-cli --cluster create [IP1]:6380 [IP1]:6381 [IP2]:6380 [IP2]:6381 [IP3]:6380 [IP3]:6381 --cluster-replicas 1 -a cquisse  2>/dev/null

檢查狀態

redis-cli --cluster check [IP1]:6380 -a cquisse 2>/dev/null

xxx.xxx.xxx.xxx:6379 (3a81002e…) -> 0 keys | 5461 slots | 1 slaves. xxx.xxx.xxx.xxx:6380 (dfe7994a…) -> 0 keys | 5461 slots | 1 slaves. xxx.xxx.xxx.xxx:6380 (c4e9009c…) -> 0 keys | 5462 slots | 1 slaves. [OK] 0 keys in 3 masters. 0.00 keys per slot on average.

Performing Cluster Check (using node xxx.xxx.xxx.xxx:6379) M: 3a81002e6a20133d44895f3f0e72e0ee16028ccf xxx.xxx.xxx.xxx:6380 slots:[0-5460] (5461 slots) master 1 additional replica(s) S: 57bfa604ff4c27de83a5c37540078d4262b293fc xxx.xxx.xxx.xxx:6381 slots: (0 slots) slave replicates 3a81002e6a20133d44895f3f0e72e0ee16028ccf S: baabb58a937192d87dbc83518da94f990c9533a6 xxx.xxx.xxx.xxx:6381 slots: (0 slots) slave replicates c4e9009cbe6ea4c2a439777d16021fecd754a2ba M: dfe7994a2457a87fec7409064358d750d48e8e39 xxx.xxx.xxx.xxx:6380 slots:[10923-16383] (5461 slots) master 1 additional replica(s) M: c4e9009cbe6ea4c2a439777d16021fecd754a2ba xxx.xxx.xxx.xxx:6380 slots:[5461-10922] (5462 slots) master 1 additional replica(s) S: 7ba2ab130e5c6917635888ee8577fa5cf3ea2838 xxx.xxx.xxx.xxx:6381 slots: (0 slots) slave replicates dfe7994a2457a87fec7409064358d750d48e8e39 [OK] All nodes agree about slots configuration. Check for open slots… Check slots coverage… [OK] All 16384 slots covered.

至此,集群搭建完成

三,哨兵

1.創建sentinel相關的文件夾
mkdir -p /usr/local/redis/redis_cluster/27001/conf/
mkdir -p /usr/local/redis/redis_cluster/27001/logs/
mkdir -p /usr/local/redis/redis_cluster/27001/data/
2.創建配置文件
cd /usr/local/redis/redis_cluster/27001/conf/
vim sentinel.conf

根據集群狀態中的主節點來配置,即 M:開頭的

bind 0.0.0.0
port 27001
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile  /usr/local/redis/redis_cluster/27001/logs/redis-sentinel.log
dir /usr/local/redis/redis_cluster/27001/datasentinel monitor mymaster1 xxx.xxx.xxx.xxx 6380 2
sentinel monitor mymaster2 xxx.xxx.xxx.xxx 6380 2
sentinel monitor mymaster3 xxx.xxx.xxx.xxx 6380 2sentinel down-after-milliseconds mymaster1 10000
sentinel down-after-milliseconds mymaster2 10000
sentinel down-after-milliseconds mymaster3 10000sentinel parallel-syncs mymaster1 1
sentinel parallel-syncs mymaster2 1
sentinel parallel-syncs mymaster3 1sentinel failover-timeout mymaster1 15000
sentinel failover-timeout mymaster2 15000
sentinel failover-timeout mymaster3 15000

啟動哨兵

redis-sentinel /usr/local/redis/redis_cluster/27001/conf/sentinel.conf

查看redis-sentinel進程

ps -ef|grep sentinel

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

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

相關文章

AI 開發平臺(Coze)搭建《AI女友(多功能版本)》

前言 本文講解如何從零開始,使用扣子平臺去搭建《AI女友(多功能版本)》 bot直達:AI女友(多功能版) - 扣子 AI Bot (coze.cn) 歡迎大家前去體驗!!! 正文 功能介紹 …

系統架構師考點--系統配置與性能評價

大家好。今天我們來總結一下系統配置與性能評價的考點內容,這一部分一般是出在上午場的選擇題中,占1-2分左右。 一、性能指標 計算機 對計算機評價的主要性能指標有:時鐘頻率(主頻);運算速度;運算精度內存的存儲容量…

ManageEngine連續榮登Gartner 2024年安全信息和事件管理魔力象限

我們很高興地宣布,ManageEngine再次在Gartner的安全信息和事件管理(SIEM)魔力象限中榜上有名,這是我們連續第七年獲得這一認可。 Gartner ManageEngine Log360是一款全面的SIEM解決方案,旨在幫助組織有效處理日志數據…

計算機共形幾何簡介

計算機共形幾何(Computational Conformal Geometry)是一門研究計算機圖形學和幾何學結合的領域,主要研究曲面的表示、形變和分析等問題。共形幾何是研究保持角度度量不變的幾何變換,而計算機共形幾何則是將共形幾何的概念和方法應…

cuda 學習筆記4

一 基本函數 在GPU上開辟空間,無論定義的數據是float還是int ,還是****gpu_int,分配空間的函數都是下面固定的形式 (void**)& 1.函數定義,global void 是配套使用的,是在GPU上定義,也就是GPU上執行,CPU上調用的函數…

python pyautogui.position實時輸出坐標

import pyautogui import timewhile True:# 獲取鼠標當前坐標x, y pyautogui.position()# 打印坐標print(f"當前坐標:({x}, {y})")# 暫停1秒time.sleep(1) 輸出實時鼠標位置坐標

Java高手的30k之路|面試寶典|精通MySQL(二)

分區表 分區類型 MySQL 支持以下幾種表分區類型,這些分區類型有助于優化大型表的管理和查詢性能: Range Partitioning(范圍分區): 范圍分區是基于列的值范圍來分配數據的。你可以定義一個或多個列的值區間&#xff0…

62.指針和二維數組(2)

一.指針和二維數組 1.如a是一個二維數組,則數組中的第i行可以看作是一個一維數組,這個一維數組的數組名是a[i]。 2.a[i]代表二維數組中第i行的首個元素的地址,即a[i][0]的地址。 二.進一步思考 二維數組可以看作是數組的數組,本…

springboot+vue+mybatis母嬰二手銷售系統+PPT+論文+講解+售后

目前由于我國二手銷售的規模較小,同發達國家相比,二手銷售比重始終偏低,消費總額增長緩慢,進一步抑制了市場消費的提升,隨著市場競爭的日益激烈,雖然許多商家主動選用二手銷售模式,但卻缺乏對其充分的重視與銷售風險的良性控制,一些商家沒有建立獨立的信用實踐管理部門,無法在交…

linux使用docker部署kafka集群

1、拉取kafka docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper 2、創建網絡 docker network create app-kafka 3、啟動zookeeper docker run -d \--name zookeeper \-p 2181:2181 \--network app-kafka \--restart always \wurstmeister/zookeeper …

【ISAC】通感一體化講座(劉凡)

高斯信道下通信感知一體化的性能極限(劉凡) 文章目錄 背景背景 通信和感知在硬件結構上相似,高效地利用資源,實現相互的增益; 感知是基于不同的任務,比如目標檢測(檢測概率,虛警概率),估計任務(從收到的信號中去估計有用的參數,均方誤差,CRB),識別(知道目標的…

Str.format()方法

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 語法參考 在Python2.6之后,提供了字符串的format()方法對字符串進行格式化操作。format()功能非常強大,格式也比較復雜&…

基于ADRC自抗擾算法的UAV飛行姿態控制系統simulink建模與仿真

目錄 1.課題概述 2.系統仿真結果 3.核心程序與模型 4.系統原理簡介 4.1 控制系統概述 4.2 ADRC基本框架 4.3 控制律設計 5.完整工程文件 1.課題概述 基于ADRC自抗擾算法的UAV飛行姿態控制系統simulink建模與仿真,分別對YAW,PITCH,ROL…

K-Means 算法詳解

K-Means 是一種常用的無監督學習算法,廣泛應用于數據聚類分析。本文將詳細講解 K-Means 算法的原理、步驟、公式以及 Python 實現,幫助你深入理解這一經典算法。 什么是 K-Means 算法? K-Means 算法是一種基于原型的聚類算法,其…

Linux分區以及磁盤管理

目錄 一、磁盤 1.磁盤結構 1.1物理結構 1.2數據結構 2.1磁盤容量 2.2磁盤接口類型 2.磁盤分區的表示 3.MBR與磁盤分區表示 4.磁盤分區結構 二、文件系統 1、類型 三、命令 1.檢測并確認新硬盤 2.創建系統文件(格式化) 2.1mkfs命令 2.2SWAP 3.掛載、卸載文件系統…

Simulink中三相PMSM配置及使用

1. 模塊介紹 Simulink提供了專門用于電力系統仿真,包括電機的動態建模和控制的電機模型,其中,永磁同步電機模塊 Permanent Magnet Synchronous Machine 支持實現三相或五相永磁同步電機模擬,電機繞組采用星型連接,在這…

【圖像分類】Yolov8 完整教程 |分類 |計算機視覺

目標:用YOLOV8進行圖像分類。 圖像分類器。 學習資源:https://www.youtube.com/watch?vZ-65nqxUdl4 努力的小巴掌 記錄計算機視覺學習道路上的所思所得。 1、文件結構化 劃分數據集:train,val,test 知道怎么劃分數據集很重要。 文件夾…

應用圖撲 HT for Web 搭建拓撲關系圖

拓撲結構在計算機網絡設計和通信領域中非常重要,因為它描述了網絡中的設備(即“點”)如何相互連接(即通過“線”)。這種結構不僅涉及物理布局,即物理拓撲,還可以涉及邏輯或虛擬的連接方式&#…

【系統架構設計師】計算機組成與體系結構 ③ ( 層次化存儲結構 | 寄存器 | 高速緩存 | 內存 | 外存 )

文章目錄 一、層次化存儲結構1、層次化存儲結構2、層次化存儲結構 - 示例說明3、程序員可操作的部分 計算機 采用 分級存儲結構 , 主要目的是 為了 解決 容量 / 價格 / 速度 之間的矛盾 ; 一、層次化存儲結構 1、層次化存儲結構 計算機 存儲器 按照存儲速度 由快到慢 進行排序 …

吐血推薦!3款視頻生成工具,全部國產,都免費

AI視頻大模型的爆發,讓創作爆款視頻不再是專業人士的能力。 今天二師兄給大家推薦3款免費的視頻生成工具。 01 可靈 推薦指數 : 五顆星 先看效果 可靈大模型測試 可靈大模型是快手AI團隊自主研發的視頻生成大模型,具備強大的視頻創作能力&a…