天天看點

騰訊雲~Redis6.2.0 僞叢集 主從複制_搭建

文章目錄

  • ​​1. 部署劃分​​
  • ​​2. 單機安裝Redis​​
  • ​​3. 建立配置/資料/日志目錄​​
  • ​​4. 修改配置檔案​​
  • ​​5. 防火牆開放​​
  • ​​6. redis啟動​​
  • ​​7. 檢視redis狀态​​
  • ​​8. 登入檢視資訊​​
  • ​​9. 讀寫分離測試​​

1. 部署劃分

IP 角色 端口
192.168.45.80 Master 6380
192.168.45.80 Slave 6381
192.168.45.80 Slave 6382

2. 單機安裝Redis

首先在在3台伺服器上分别安裝Redis單機環境

​Linux環境 安裝 Redis-6.2.6 配置運作_01​​

3. 建立配置/資料/日志目錄

  • 建立配置目錄+資料目錄+日志目錄
mkdir /usr/local/redis/conf/redis01 -p
mkdir /usr/local/redis/conf/redis02 -p
mkdir /usr/local/redis/conf/redis03 -p
mkdir /usr/local/redis/data/redis01 -p
mkdir /usr/local/redis/data/redis02 -p
mkdir /usr/local/redis/data/redis03 -p
mkdir /usr/local/redis/log/redis01 -p
mkdir /usr/local/redis/log/redis02 -p
mkdir /usr/local/redis/log/redis03 -p      

4. 修改配置檔案

vim /usr/local/redis/conf/redis01/redis-6380.conf      
  • master主節點配置
# 放行通路IP的限制 多個用空格隔開 
# 0.0.0.0 代表無限制
bind 0.0.0.0

# 背景啟動開啟
daemonize yes

# 日志存儲目錄以及日志檔案名
logfile "/usr/local/redis/log/redis01/redis.log"

# rdb資料檔案名
dbfilename dump.rdb

# aof模式開啟
appendonly no

# aof資料檔案名
appendfilename "appendonly.aof"

#rdb資料檔案和aof資料檔案存儲目錄
dir /usr/local/redis/data/redis01

# 設定密碼
requirepass 123456

# 從節點通路主節點的密碼(必須和requirepass 一緻)
masterauth 123456

#從節點隻讀模式
replica-read-only yes

# 端口
port 6380      
  • slave01配置
vim /usr/local/redis/conf/redis02/redis-6381.conf      
# 放行通路IP的限制 多個用空格隔開
# 0.0.0.0 代表無限制
bind 0.0.0.0

# 背景啟動開啟
daemonize yes

# 日志存儲目錄以及日志檔案名
logfile "/usr/local/redis/log/redis02/redis.log"

# rdb資料檔案名
dbfilename dump.rdb

# aof模式開啟
appendonly no

# aof資料檔案名
appendfilename "appendonly.aof"

#rdb資料檔案和aof資料檔案存儲目錄
dir /usr/local/redis/data/redis02

# 設定密碼
requirepass 123456

# 從節點通路主節點的密碼(必須和requirepass 一緻)
masterauth 123456

#從節點隻讀模式
replica-read-only yes
port 6381
# 從節點從屬于那個主節點
slaveof 192.168.45.80 6380      
  • slave02配置
vim /usr/local/redis/conf/redis03/redis-6382.conf      
# 放行通路IP的限制 多個用空格隔開
# 0.0.0.0 代表無限制
bind 0.0.0.0

# 背景啟動開啟
daemonize yes

# 日志存儲目錄以及日志檔案名
logfile "/usr/local/redis/log/redis03/redis.log"

# rdb資料檔案名
dbfilename dump.rdb

# aof模式開啟
appendonly no

# aof資料檔案名
appendfilename "appendonly.aof"

#rdb資料檔案和aof資料檔案存儲目錄
dir /usr/local/redis/data/redis03

# 設定密碼
requirepass 123456

# 從節點通路主節點的密碼(必須和requirepass 一緻)
masterauth 123456

#從節點隻讀模式
replica-read-only yes
port 6382
# 從節點從屬于那個主節點
slaveof 192.168.45.80 6380      

5. 防火牆開放

firewall-cmd --zone=public --add-port=6380/tcp --permanent
firewall-cmd --zone=public --add-port=6381/tcp --permanent
firewall-cmd --zone=public --add-port=6382/tcp --permanent
firewall-cmd --reload      
騰訊雲~Redis6.2.0 僞叢集 主從複制_搭建

6. redis啟動

/app/redis-6.2.6/src/redis-server /usr/local/redis/conf/redis01/redis-6380.conf
/app/redis-6.2.6/src/redis-server /usr/local/redis/conf/redis02/redis-6381.conf
/app/redis-6.2.6/src/redis-server /usr/local/redis/conf/redis03/redis-6382.conf      

7. 檢視redis狀态

ps -ef |grep redis      
[root@VM-24-10-centos redis03]#  ps -ef |grep redis
root     14763     1  0 14:39 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:6380
root     14779     1  0 14:39 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:6381
root     14834     1  0 14:39 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:6382      

8. 登入檢視資訊

主節點資訊

[root@VM-24-10-centos ~]# /app/redis-6.2.6/src/redis-cli -p 6380 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.45.80,port=6381,state=online,offset=182,lag=1
slave1:ip=192.168.45.80,port=6382,state=online,offset=182,lag=1
master_failover_state:no-failover
master_replid:58bef7c5bf537c81b17cdec50ed8f4ba6a30f2d3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:196
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:196
127.0.0.1:6380>      
騰訊雲~Redis6.2.0 僞叢集 主從複制_搭建

slave01節點資訊

[root@VM-24-10-centos ~]# /app/redis-6.2.6/src/redis-cli -p 6381 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:192.168.45.80
master_port:6380
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_read_repl_offset:238
slave_repl_offset:238
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:58bef7c5bf537c81b17cdec50ed8f4ba6a30f2d3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:238
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:238
127.0.0.1:6381>      
騰訊雲~Redis6.2.0 僞叢集 主從複制_搭建

slave02節點資訊

[root@VM-24-10-centos ~]# /app/redis-6.2.6/src/redis-cli -p 6382 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6382> info replication
# Replication
role:slave
master_host:192.168.45.80
master_port:6380
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_read_repl_offset:378
slave_repl_offset:378
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:58bef7c5bf537c81b17cdec50ed8f4ba6a30f2d3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:378
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:378
127.0.0.1:6382>      

9. 讀寫分離測試

master節點 能讀能寫驗證

127.0.0.1:6380> set name zhangsan
OK
127.0.0.1:6380> get name
"zhangsan"
127.0.0.1:6380>      
127.0.0.1:6381> get name
"zhangsan"
127.0.0.1:6381> set lisi
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6381>      
127.0.0.1:6382> get name
"zhangsan"
127.0.0.1:6382> set name lisi
(error) READONLY You can't write against a read only replica.
127.0.0.1:6382>      

繼續閱讀