Redis 主從搭建的實現(xiàn)(同主機和跨節(jié)點)
更新時間:2025年09月23日 11:33:15 作者:咚咚?
本文主要介紹了Redis 主從搭建的實現(xiàn),包括同主機和跨節(jié)點,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
一. 同主機搭建Redis主從
1. 環(huán)境介紹
同機器 一主兩從
| 操作系統(tǒng) | Centos 7 |
|---|---|
| 內核版本 | Linux 3.10.0-957.el7.x86_64 |
| 主機名稱 | master-salve |
| IP地址 | 192.168.1.100 |
| 端口 | master: 16370 slave1: 16371 slave2: 16372 |
| Redis | 7.2.5 |
2. 環(huán)境前準備工作
# 關閉防火墻 systemctl stop firewalld systemctl disable firewalld # 修改 hostname hostnamectl set-hostname xxxx # 修改后退出當前終端重新連接即可 # 更新下軟件源 # 地址 https://developer.aliyun.com/mirror/ # 時區(qū)調整,時間校準 date -R timedatectl set-timezone Asia/Shanghai yum -y install ntp ntpdate ntp1.aliyun.com # 關閉 selinux: sed -i 's/enforcing/disabled/' /etc/selinux/config setenforce 0
3. 安裝 Redis 7.2.5
# 下載地址 http://download.redis.io/releases/ # 下載 wget http://download.redis.io/releases/redis-7.2.5.tar.gz # 解壓 tar -xf redis-7.2.5.tar.gz -C /opt/redis # 編譯 make MALLOC=libc # 安裝 注意如果安裝提示python3不存在 執(zhí)行 yum install -y python3 make install PREFIX=/usr/local/redis # 配置環(huán)境變量 vi /etc/profile.d/redis.sh #!/bin/bash export REDIS_HOME=/usr/local/redis export PATH=$PATH:$REDIS_HOME/bin # 使其配置生效 source /etc/profile.d/redis.sh
4. redis 配置修改并且啟動
4.1 修改配置文件
# 創(chuàng)建redis數(shù)據(jù)存儲目錄
mkdir -p /usr/local/redis/data/1637{0..2}
# 創(chuàng)建redis配置文件存儲目錄
mkdir -p /usr/local/redis/conf/1637{0..2}
# 創(chuàng)建redis日志存儲目錄
mkdir -p /usr/local/redis/log/1637{0..2}
# 創(chuàng)建redis pid存儲目錄
mkdir /usr/local/redis/run
# redis配置文件 16370
# 開啟保護模式
protected-mode yes
# 添加本機的ip
bind 192.168.1.100
# 端口
port 16370
# pid存儲目錄
pidfile /usr/local/redis/run/redis_16370.pid
# 日志存儲目錄
logfile /usr/local/redis/log/16370/redis_16370.log
# 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好
dir /usr/local/redis/data/16370
# 設置實例的驗證口令
requirepass dongdong
# 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。
# 此配置項中值需要和master機器的“requirepass”保持一致
masterauth dongdong
# 配置RDB持久化策略
save 900 1
save 300 10
save 60 10000
# 配置AOF持久化
appendonly yes
appendfsync everysec
# 守護進程
daemonize yes
# redis配置文件 16371
# 開啟保護模式
protected-mode yes
# 添加本機的ip
bind 192.168.1.100
# 端口
port 16371
# pid存儲目錄
pidfile /usr/local/redis/run/redis_16371.pid
# 日志存儲目錄
logfile /usr/local/redis/log/16370/redis_16371.log
# 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好
dir /usr/local/redis/data/16371
# 設置實例的驗證口令
requirepass dongdong
# 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。
# 此配置項中值需要和master機器的“requirepass”保持一致
masterauth dongdong
# 配置RDB持久化策略
save 900 1
save 300 10
save 60 10000
# 配置AOF持久化
appendonly yes
appendfsync everysec
# 守護進程
daemonize yes
# redis配置文件 16372
# 開啟保護模式
protected-mode yes
# 添加本機的ip
bind 192.168.1.100
# 端口
port 16372
# pid存儲目錄
pidfile /usr/local/redis/run/redis_16372.pid
# 日志存儲目錄
logfile /usr/local/redis/log/16370/redis_16372.log
# 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好
dir /usr/local/redis/data/16372
# 設置實例的驗證口令
requirepass dongdong
# 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。
# 此配置項中值需要和master機器的“requirepass”保持一致
masterauth dongdong
# 配置RDB持久化策略
save 900 1
save 300 10
save 60 10000
# 配置AOF持久化
appendonly yes
appendfsync everysec
# 守護進程
daemonize yes
# 復制下面命令即可
cat > /usr/local/redis/conf/redis_16370.conf <<EOF
# 開啟保護模式
protected-mode yes
# 添加本機的ip
bind 192.168.1.100
# 端口
port 16370
# pid存儲目錄
pidfile /usr/local/redis/run/redis_16370.pid
# 日志存儲目錄
logfile /usr/local/redis/log/16370/redis_16370.log
# 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好
dir /usr/local/redis/data/16370
# 設置實例的驗證口令
requirepass dongdong
# 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。
# 此配置項中值需要和master機器的“requirepass”保持一致
masterauth dongdong
# 配置RDB持久化策略
save 900 1
save 300 10
save 60 10000
# 配置AOF持久化
appendonly yes
appendfsync everysec
# 守護進程
daemonize yes
EOF
cat > /usr/local/redis/conf/redis_16371.conf <<EOF
# 開啟保護模式
protected-mode yes
# 添加本機的ip
bind 192.168.1.100
# 端口
port 16371
# pid存儲目錄
pidfile /usr/local/redis/run/redis_16371.pid
# 日志存儲目錄
logfile /usr/local/redis/log/16370/redis_16371.log
# 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好
dir /usr/local/redis/data/16371
# 設置實例的驗證口令
requirepass dongdong
# 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。
# 此配置項中值需要和master機器的“requirepass”保持一致
masterauth dongdong
# 配置RDB持久化策略
save 900 1
save 300 10
save 60 10000
# 配置AOF持久化
appendonly yes
appendfsync everysec
# 守護進程
daemonize yes
EOF
cat > /usr/local/redis/conf/redis_16372.conf <<EOF
# 開啟保護模式
protected-mode yes
# 添加本機的ip
bind 192.168.1.100
# 端口
port 16372
# pid存儲目錄
pidfile /usr/local/redis/run/redis_16372.pid
# 日志存儲目錄
logfile /usr/local/redis/log/16370/redis_16372.log
# 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好
dir /usr/local/redis/data/16372
# 設置實例的驗證口令
requirepass dongdong
# 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。
# 此配置項中值需要和master機器的“requirepass”保持一致
masterauth dongdong
# 配置RDB持久化策略
save 900 1
save 300 10
save 60 10000
# 配置AOF持久化
appendonly yes
appendfsync everysec
# 守護進程
daemonize yes
EOF
4.2 編寫啟動腳本
# 啟動腳本
cat > /usr/local/redis/bin/master-slave_start.sh << EOF
#!/bin/bash
redis-server /usr/local/redis/conf/redis_16370.conf
redis-server /usr/local/redis/conf/redis_16371.conf
redis-server /usr/local/redis/conf/redis_16372.conf
EOF
# 賦予可執(zhí)行權限
chmod +x /usr/local/redis/bin/master-slave_start.sh
# 關閉腳本
vi /usr/local/redis/bin/master-slave_shutdown.sh
#!/bin/bash
kill -9 $(ps -ef | grep 1637 | grep -v grep | awk '{print $2}')
# 賦予可執(zhí)行權限
chmod +x /usr/local/redis/bin/master-slave_shutdown.sh
5. 開啟主從
5.1 開啟
# 以"192.168.1.100:16370"實例為主庫,以"192.168.1.100:16371"實例和"192.168.1.100:16372"實例為從庫。 # -a 參數(shù)指定密碼 # 從庫實例開啟主從 redis-cli -h 192.168.1.100 -p 16371 -a dongdong slaveof 192.168.1.100 16370 redis-cli -h 192.168.1.100 -p 16372 -a dongdong slaveof 192.168.1.100 16370 # Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # 警告:在命令行界面上使用帶有“-a”或“-u”選項的密碼可能不安全。 可以忽略 # 解決方式 # redis-cli -h 192.168.1.100 -p 16371 -a dongdong --no-auth-warning slaveof 192.168.1.100 16370
5.2 主庫實例查看主從信息
redis-cli -h 192.168.1.100 -p 16370 -a dongdong info replication [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16370 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:2 slave0:ip=192.168.1.100,port=16371,state=online,offset=8428,lag=0 slave1:ip=192.168.1.100,port=16372,state=online,offset=8428,lag=1 master_failover_state:no-failover master_replid:a292603e2c96a6f451055e6d84a60795f81f2928 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:8428 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:8428
5.3 從庫實例查看主從信息
# 192.168.1.100:16371 查看主從信息 redis-cli -h 192.168.1.100 -p 16371 -a dongdong info replication [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16371 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:slave master_host:192.168.1.100 master_port:16370 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_read_repl_offset:8680 slave_repl_offset:8680 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 master_failover_state:no-failover master_replid:a292603e2c96a6f451055e6d84a60795f81f2928 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:8680 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:15 repl_backlog_histlen:8666
5.4 驗證主從配置是否生效
# "192.168.1.100:16370"實例主庫的11號數(shù)據(jù)庫創(chuàng)建測試數(shù)據(jù) redis-cli -h 192.168.1.100 -p 16370 -a dongdong -n 11 [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16370 -a dongdong -n 11 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.1.100:16370[11]> keys * (empty array) 192.168.1.100:16370[11]> set name dongdong OK 192.168.1.100:16370[11]> set age 18 OK 192.168.1.100:16370[11]> keys * 1) "age" 2) "name" # "192.168.1.100:16371"實例從庫的11號數(shù)據(jù)庫查看是否同步主庫的11號數(shù)據(jù)庫 redis-cli -h 192.168.1.100 -p 16371 -a dongdong -n 11 [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16371 -a dongdong -n 11 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.1.100:16371[11]> keys * 1) "name" 2) "age" 192.168.1.100:16371[11]> get name "dongdong" 192.168.1.100:16371[11]> get age "18" 192.168.1.100:16371[11]> # "192.168.1.100:16372"實例從庫的11號數(shù)據(jù)庫查看是否同步主庫的11號數(shù)據(jù)庫 redis-cli -h 192.168.1.100 -p 16372 -a dongdong -n 11 [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16372 -a dongdong -n 11 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.1.100:16372[11]> keys * 1) "age" 2) "name" 192.168.1.100:16372[11]> get name "dongdong" 192.168.1.100:16372[11]> get age "18" 192.168.1.100:16372[11]>
6. 解除 192.168.1.100:16372 實例主從
# 192.168.1.100:16372 查看主從信息 redis-cli -h 192.168.1.100 -p 16372 -a dongdong info replication [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16372 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:slave master_host:192.168.1.100 master_port:16370 master_link_status:up master_last_io_seconds_ago:4 master_sync_in_progress:0 slave_read_repl_offset:10003 slave_repl_offset:10003 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 master_failover_state:no-failover master_replid:a292603e2c96a6f451055e6d84a60795f81f2928 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:10003 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:155 repl_backlog_histlen:9849 # 192.168.1.100:16370 查看主從信息 redis-cli -h 192.168.1.100 -p 16370 -a dongdong info replication [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16370 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:2 slave0:ip=192.168.1.100,port=16371,state=online,offset=10157,lag=0 slave1:ip=192.168.1.100,port=16372,state=online,offset=10157,lag=0 master_failover_state:no-failover master_replid:a292603e2c96a6f451055e6d84a60795f81f2928 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:10157 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:10157 # 解除 192.168.1.100:16372 主從信息 redis-cli -h 192.168.1.100 -p 16372 -a dongdong slaveof no one [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16372 -a dongdong slaveof no one Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. OK # 再次查看 192.168.1.100:16370 查看主從信息 redis-cli -h 192.168.1.100 -p 16370 -a dongdong info replication [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16370 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:1 slave0:ip=192.168.1.100,port=16371,state=online,offset=10731,lag=0 master_failover_state:no-failover master_replid:a292603e2c96a6f451055e6d84a60795f81f2928 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:10731 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:10731 # 只剩下一個 從節(jié)點了 # 把192.168.1.100:16372 添加回來 redis-cli -h 192.168.1.100 -p 16372 -a dongdong slaveof 192.168.1.100 16370 [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16372 -a dongdong slaveof 192.168.1.100 16370 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. OK # 此時再看192.168.1.100:16370 查看主從信息 redis-cli -h 192.168.1.100 -p 16370 -a dongdong info replication [root@master-slave ~]# redis-cli -h 192.168.1.100 -p 16370 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:2 slave0:ip=192.168.1.100,port=16371,state=online,offset=10941,lag=0 slave1:ip=192.168.1.100,port=16372,state=online,offset=10941,lag=0 master_failover_state:no-failover master_replid:a292603e2c96a6f451055e6d84a60795f81f2928 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:10941 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:10941 # slaves 變成2了
二. 跨節(jié)點部署Redis主從
1. 環(huán)境介紹
| 操作系統(tǒng) | Centos 7 | Centos 7 | Centos 7 |
|---|---|---|---|
| 內核版本 | Linux 3.10.0-957.el7.x86_64 | Linux 3.10.0-957.el7.x86_64 | Linux 3.10.0-957.el7.x86_64 |
| 主機名稱 | master | slave1 | slave2 |
| IP | 192.168.1.100 | 192.168.1.200 | 192.168.1.250 |
| 端口 | 16380 | 16381 | 16382 |
2. 修改配置文件
2.1 master
# 創(chuàng)建redis數(shù)據(jù)存儲目錄 mkdir -p /usr/local/redis/data/16380 # 創(chuàng)建redis配置文件存儲目錄 mkdir -p /usr/local/redis/conf/16380 # 創(chuàng)建redis日志存儲目錄 mkdir -p /usr/local/redis/log/16380 # 創(chuàng)建redis pid存儲目錄 mkdir /usr/local/redis/run # 復制下面命令即可 cat > /usr/local/redis/conf/redis_16380.conf<<EOF # 開啟保護模式 protected-mode yes # 添加本機的ip bind 192.168.1.100 # 端口 port 16380 # pid存儲目錄 pidfile /usr/local/redis/run/redis_16380.pid # 日志存儲目錄 logfile /usr/local/redis/log/redis_16380.log # 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好 dir /usr/local/redis/data/16380 # 設置實例的驗證口令 requirepass dongdong # 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。 # 此配置項中值需要和master機器的“requirepass”保持一致 masterauth dongdong # 配置RDB持久化策略 save 900 1 save 300 10 save 60 10000 # 配置AOF持久化 appendonly yes appendfsync everysec # 守護進程 daemonize yes EOF
2.2 slave 1
# 創(chuàng)建redis數(shù)據(jù)存儲目錄 mkdir -p /usr/local/redis/data/16381 # 創(chuàng)建redis配置文件存儲目錄 mkdir -p /usr/local/redis/conf/16381 # 創(chuàng)建redis日志存儲目錄 mkdir -p /usr/local/redis/log/16381 # 創(chuàng)建redis pid存儲目錄 mkdir /usr/local/redis/run # 復制下面命令即可 cat > /usr/local/redis/conf/redis_16381.conf <<EOF # 開啟保護模式 protected-mode yes # 添加本機的ip bind 192.168.1.200 # 端口 port 16381 # pid存儲目錄 pidfile /usr/local/redis/run/redis_16381.pid # 日志存儲目錄 logfile /usr/local/redis/log/redis_16381.log # 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好 dir /usr/local/redis/data/16381 # 設置實例的驗證口令 requirepass dongdong # 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。 # 此配置項中值需要和master機器的“requirepass”保持一致 masterauth dongdong # 配置RDB持久化策略 save 900 1 save 300 10 save 60 10000 # 配置AOF持久化 appendonly yes appendfsync everysec # 守護進程 daemonize yes EOF
2.3 slave 2
# 創(chuàng)建redis數(shù)據(jù)存儲目錄 mkdir -p /usr/local/redis/data/16382 # 創(chuàng)建redis配置文件存儲目錄 mkdir -p /usr/local/redis/conf/16382 # 創(chuàng)建redis日志存儲目錄 mkdir -p /usr/local/redis/log/16382 # 創(chuàng)建redis pid存儲目錄 mkdir /usr/local/redis/run # 復制下面命令即可 cat > /usr/local/redis/conf/redis_16382.conf <<EOF # 開啟保護模式 protected-mode yes # 添加本機的ip bind 192.168.1.250 # 端口 port 16382 # pid存儲目錄 pidfile /usr/local/redis/run/redis_16382.pid # 日志存儲目錄 logfile /usr/local/redis/log/redis_16382.log # 數(shù)據(jù)存儲目錄,目錄要提前創(chuàng)建好 dir /usr/local/redis/data/16382 # 設置實例的驗證口令 requirepass dongdong # 以認證的方式連接到master。 如果master中使用了“密碼保護”,slave必須交付正確的授權密碼,才能連接成功。 # 此配置項中值需要和master機器的“requirepass”保持一致 masterauth dongdong # 配置RDB持久化策略 save 900 1 save 300 10 save 60 10000 # 配置AOF持久化 appendonly yes appendfsync everysec # 守護進程 daemonize yes EOF
3.啟動Redis
3.1 master
redis-server /usr/local/redis/conf/redis_16380.conf
3.2 slave 1
redis-server /usr/local/redis/conf/redis_16381.conf
3.3 slave 2
redis-server /usr/local/redis/conf/redis_16382.conf
4. 開啟主從
4.1 slave 1
# 從庫開啟主從 redis-cli -h 192.168.1.200 -p 16381 -a dongdong slaveof 192.168.1.100 16380 [root@slave1 ~]# redis-cli -h 192.168.1.200 -p 16381 -a dongdong slaveof 192.168.1.100 16380 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. OK # 從庫查看主從信息 redis-cli -h 192.168.1.200 -p 16381 -a dongdong info replication [root@slave1 ~]# redis-cli -h 192.168.1.200 -p 16381 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:slave master_host:192.168.1.100 master_port:16380 master_link_status:up master_last_io_seconds_ago:3 master_sync_in_progress:0 slave_read_repl_offset:532 slave_repl_offset:532 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 master_failover_state:no-failover master_replid:7330881025ee2709ee6c9c32ea3fcc9b6649893d master_replid2:0000000000000000000000000000000000000000 master_repl_offset:532 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:15 repl_backlog_histlen:518
4.2 slave 2
# 從庫開啟主從 redis-cli -h 192.168.1.250 -p 16382 -a dongdong slaveof 192.168.1.100 16380 [root@slave2 ~]# redis-cli -h 192.168.1.250 -p 16382 -a dongdong slaveof 192.168.1.100 16380 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. OK # 從庫查看主從信息 redis-cli -h 192.168.1.250 -p 16382 -a dongdong info replication [root@slave2 ~]# redis-cli -h 192.168.1.250 -p 16382 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:slave master_host:192.168.1.100 master_port:16380 master_link_status:up master_last_io_seconds_ago:10 master_sync_in_progress:0 slave_read_repl_offset:560 slave_repl_offset:560 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 master_failover_state:no-failover master_replid:7330881025ee2709ee6c9c32ea3fcc9b6649893d master_replid2:0000000000000000000000000000000000000000 master_repl_offset:560 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:211 repl_backlog_histlen:350
4.3 master
# 查看 主從信息 redis-cli -h 192.168.1.100 -p 16380 -a dongdong info replication [root@master ~]# redis-cli -h 192.168.1.100 -p 16380 -a dongdong info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:2 slave0:ip=192.168.1.200,port=16381,state=online,offset=336,lag=0 slave1:ip=192.168.1.250,port=16382,state=online,offset=336,lag=1 master_failover_state:no-failover master_replid:7330881025ee2709ee6c9c32ea3fcc9b6649893d master_replid2:0000000000000000000000000000000000000000 master_repl_offset:336 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:336
5. 驗證主從配置是否生效
# "master主機名"實例主庫的11號數(shù)據(jù)庫創(chuàng)建測試數(shù)據(jù) redis-cli -h 192.168.1.100 -p 16380 -a dongdong -n 11 [root@master ~]# redis-cli -h 192.168.1.100 -p 16380 -a dongdong -n 11 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.1.100:16380[11]> keys * (empty array) 192.168.1.100:16380[11]> set name dongdong OK 192.168.1.100:16380[11]> set age 18 OK 192.168.1.100:16380[11]> keys * 1) "name" 2) "age" 192.168.1.100:16380[11]> # "slave1主機名"實例從庫的11號數(shù)據(jù)庫查看是否同步主庫的11號數(shù)據(jù)庫 redis-cli -h 192.168.1.200 -p 16381 -a dongdong -n 11 [root@slave1 ~]# redis-cli -h 192.168.1.200 -p 16381 -a dongdong -n 11 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.1.200:16381[11]> get name "dongdong" 192.168.1.200:16381[11]> get age "18" 192.168.1.200:16381[11]> key * (error) ERR unknown command 'key', with args beginning with: '*' 192.168.1.200:16381[11]> keys * 1) "age" 2) "name" 192.168.1.200:16381[11]> # "slave2主機名"實例從庫的11號數(shù)據(jù)庫查看是否同步主庫的11號數(shù)據(jù)庫 redis-cli -h 192.168.1.250 -p 16382 -a dongdong -n 11 [root@slave2 ~]# redis-cli -h 192.168.1.250 -p 16382 -a dongdong -n 11 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.1.250:16382[11]> get name "dongdong" 192.168.1.250:16382[11]> get age "18" 192.168.1.250:16382[11]> keys * 1) "age" 2) "name" 192.168.1.250:16382[11]> # 如果針對 slave1 或者 slave2 進行寫入操作 則會報錯 錯誤信息 只能在master操作哦 (error) READONLY You can't write against a read only replica.
到此這篇關于Redis 主從搭建的實現(xiàn)(同主機和跨節(jié)點)的文章就介紹到這了,更多相關Redis 主從搭建內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
redis 解決庫存并發(fā)問題實現(xiàn)數(shù)量控制
本文主要介紹了redis 解決庫存并發(fā)問題實現(xiàn)數(shù)量控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04
Redis分布式鎖中Redission底層實現(xiàn)方式
Redission基于Redis原子操作和Lua腳本實現(xiàn)分布式鎖,通過SETNX命令、看門狗續(xù)期、可重入機制及異常處理,確保鎖的可靠性和一致性,是Java項目中高效解決并發(fā)控制問題的優(yōu)選方案2025-08-08
Redis使用bloom-filter過濾器實現(xiàn)推薦去重
這篇文章主要介紹了Redis使用bloom-filter過濾器實現(xiàn)推薦去重,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11
Redis哨兵模式在Spring Boot項目中的使用與實踐完全指南
Redis哨兵模式為SpringBoot項目提供高可用Redis管理,實現(xiàn)自動故障轉移與監(jiān)控,通過配置依賴、參數(shù)及最佳實踐(如哨兵節(jié)點數(shù)量、網(wǎng)絡規(guī)劃),可提升系統(tǒng)穩(wěn)定性與可靠性,本文給大家介紹Redis哨兵模式在Spring Boot項目中的使用與實踐,感興趣的朋友跟隨小編一起看看吧2025-09-09

