文章目錄
- 前言
- 一、Redis主從復制配置
- 1.1.配置文件redis_master.conf,redis_slave.conf
- 1.2.啟動服務
- 1.3.檢查成果
- 二、Redis集群配置
- 2.1.服務器40.240.34.91集群配置
- 2.2.其它服務器xxx.92,xxx.93集群配置
- 2.3.啟動服務
- 2.3.啟動集群服務
- 2.4.檢查成果
- 三、優劣
- 四、結束
前言
提示:本文主講兩種redis數據同步形式,1.主從復制配置 2.集群配置
一、Redis主從復制配置
假設只有一臺服務器,配置主從結構, 服務器IP為40.240.34.91
1.1.配置文件redis_master.conf,redis_slave.conf
- 主節點,端口6379
# 服務端口
port 6379
# 守護進程模式運行
daemonize yes
# pid文件、日志文件
pidfile /home/xx_user/redis-7.2.8_install/redis_6379.pid
logfile redis_6379.log
dir ./
# 設置從節點只讀
replica-read-only yes
# 持久化配置
appendonly no # 持久化,生產可設值yes
protected-mode yes # 外部訪問,生產環境可設值no,密碼訪問
bind 0.0.0.0 -::1 # 所有IP可連接,也有如配置bind 0.0.0.0
- 從節點,端口6380
# 服務端口
port 6380
# 守護進程模式運行
daemonize yes
# pid文件、日志文件
pidfile /home/xx_user/redis-7.2.8_install/redis_6380.pid
logfile redis_6380.log
dir ./
# 設置從節點只讀
replica-read-only yes
# 綁定主從節點從屬關系(集群模式非此形式綁定關系,這行要注釋掉)
replicaof 127.0.0.1 6379
# 持久化配置
appendonly no # 持久化,生產可設值yes
protected-mode yes # 外部訪問,生產環境可設值no,密碼訪問
bind 0.0.0.0 -::1 # 所有IP可連接,也有如配置bind 0.0.0.0
1.2.啟動服務
# 啟動主節點服務
/home/xx_user/redis-7.2.8_install/bin/redis-server redis_master.conf
# 啟動從節點服務
/home/xx_user/redis-7.2.8_install/bin/redis-server redis_slave.conf
1.3.檢查成果
->redis-cli -h 40.240.34.91 -p 6379|6380
# 節點狀態
info replication
# 補充一個只是知識點,當在配置文件中忘記綁定從屬關系,可以在進入redis服務后使用命令replicaof 127.0.0.1 6379重新綁定# 關停主節點服務
redis-cli -p 6379 shutdown
二、Redis集群配置
假設有三臺服務器,配置3主3從集群機構, 服務器IP為40.240.34.91, 40.240.34.92, 40.240.34.93
2.1.服務器40.240.34.91集群配置
- 主節點,端口6379
# **redis_master.conf**# 服務端口
port 6379
# 守護進程模式運行
daemonize yes
# pid文件、日志文件
pidfile /home/xx_user/redis-7.2.8_install/redis_6379.pid
logfile redis_6379.log
dir ./
# 設置從節點只讀
replica-read-only yes
# 持久化配置
appendonly no # 持久化,生產可設值yes
protected-mode yes # 外部訪問,生產環境可設值no,密碼訪問
bind 0.0.0.0 -::1 # 所有IP可連接,也有如配置bind 0.0.0.0
# 集群模式(主從復制配置,不需要開啟集群模式)
cluster-enabled yes # 集群模式(yes開啟no關閉)
cluster-config-file nodes-6379.conf # 集群節點配置文件
cluster-node-timeout 5000 # 節點超時時間
- 從節點,端口6380
# **redis_slave.conf**# 服務端口
port 6380
# 守護進程模式運行
daemonize yes
# pid文件、日志文件
pidfile /home/xx_user/redis-7.2.8_install/redis_6380.pid
logfile redis_6380.log
dir ./
# 設置從節點只讀
replica-read-only yes
# 綁定主從節點從屬關系(集群模式非此形式綁定關系,這行要注釋掉)
# replicaof 127.0.0.1 6379# 持久化配置
appendonly no # 持久化,生產可設值yes
protected-mode yes # 外部訪問,生產環境可設值no,密碼訪問
bind 0.0.0.0 -::1 # 所有IP可連接,也有如配置bind 0.0.0.0
# 集群模式(主從復制配置,不需要開啟集群模式)
cluster-enabled yes # 集群模式(yes開啟no關閉)
cluster-config-file nodes-6379.conf # 集群節點配置文件
cluster-node-timeout 5000 # 節點超時時間
2.2.其它服務器xxx.92,xxx.93集群配置
將40.240.34.91的文件redis_master.conf, redis_slave.conf分別復制到服務器xxx.92, xxx.93上,注意文件路徑,機器host可能不一致
2.3.啟動服務
# 服務器40.240.34.91的主從服務
/home/xx_user/redis-7.2.8_install/bin/redis-server redis_master.conf
/home/xx_user/redis-7.2.8_install/bin/redis-server redis_slave.conf
# 服務器40.240.34.92的主從服務
/home/xx_user/redis-7.2.8_install/bin/redis-server redis_master.conf
/home/xx_user/redis-7.2.8_install/bin/redis-server redis_slave.conf
# 服務器40.240.34.93的主從服務
/home/xx_user/redis-7.2.8_install/bin/redis-server redis_master.conf
/home/xx_user/redis-7.2.8_install/bin/redis-server redis_slave.conf
2.3.啟動集群服務
# 創建集群時自動分配主從關系(前三個是主節點,后三個是從節點)
# --cluster-replicas 1 表示每個主節點有 1 個從節點,集群會自動分配主從關系
redis-cli --cluster create 40.240.34.91:6379 40.240.34.92:6379 40.240.34.93:6379 40.240.34.91:6380 40.240.34.92:6380 40.240.34.93:6380 --cluster-replicas 1
# 手動添加從節點到指定主節點
redis-cli --cluster add-node 127.0.0.1:6381 127.0.0.1:6382 --cluster-slave --cluster-master-id 127.0.0.1:6379
2.4.檢查成果
# -c代表集群模式,-a代表密碼
->redis-cli -h 40.240.34.91 -p 6380 -a passwd -c
# 集群狀態
cluster info
# 檢查集群
redis-cli -a passwd --cluster check 40.240.34.91:6379
三、優劣
模式 | 配置方式 | 使用場景 |
---|---|---|
集群 | cluster-enabled yes + redis-cli --cluster create | 高可用、自動分片 |
主從復制 | cluster-enabled no + replicaof | 簡單的主從備份 |
如果你的目標是 高可用集群,應該用 Redis Cluster,讓集群自動管理主從關系;
如果只是 單機主從備份,就用 主從復制,手動配置 replicaof !