Redis 主从搭建

Redis主从搭建 7.2.5

文章目录

  • 一. 同主机搭建Redis主从
    • 1. 环境介绍
    • 2. 环境前准备工作
    • 3. 安装 Redis 7.2.5
    • 4. redis 配置修改并且启动
      • 4.1 修改配置文件
      • 4.2 编写启动脚本
    • 5. 开启主从
      • 5.1 开启
      • 5.2 主库实例查看主从信息
      • 5.3 从库实例查看主从信息
      • 5.4 验证主从配置是否生效
    • 6. 解除 192.168.1.100:16372 实例主从
  • 二. 跨节点部署Redis主从
    • 1. 环境介绍
    • 2. 修改配置文件
      • 2.1 master
      • 2.2 slave 1
      • 2.3 slave 2
    • 3.启动Redis
      • 3.1 master
      • 3.2 slave 1
      • 3.3 slave 2
    • 4. 开启主从
      • 4.1 slave 1
      • 4.2 slave 2
      • 4.3 master
    • 5. 验证主从配置是否生效

一. 同主机搭建Redis主从

1. 环境介绍

同机器 一主两从

操作系统Centos 7
内核版本Linux 3.10.0-957.el7.x86_64
主机名称master-salve
IP地址192.168.1.100
端口master: 16370 slave1: 16371 slave2: 16372
Redis7.2.5

2. 环境前准备工作

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld# 修改 hostname
hostnamectl set-hostname xxxx  # 修改后退出当前终端重新连接即可# 更新下软件源
# 地址 https://developer.aliyun.com/mirror/# 时区调整,时间校准
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不存在 执行 yum install -y python3
make install PREFIX=/usr/local/redis# 配置环境变量
vi /etc/profile.d/redis.sh#!/bin/bashexport REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin # 使其配置生效
source /etc/profile.d/redis.sh

4. redis 配置修改并且启动

4.1 修改配置文件

# 创建redis数据存储目录
mkdir -p /usr/local/redis/data/1637{0..2}
# 创建redis配置文件存储目录
mkdir -p /usr/local/redis/conf/1637{0..2}
# 创建redis日志存储目录
mkdir -p /usr/local/redis/log/1637{0..2}# 创建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 
# 数据存储目录,目录要提前创建好
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 
# 数据存储目录,目录要提前创建好
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 
# 数据存储目录,目录要提前创建好
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 
# 数据存储目录,目录要提前创建好
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 
EOFcat > /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 
# 数据存储目录,目录要提前创建好
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 
EOFcat > /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 
# 数据存储目录,目录要提前创建好
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/bashredis-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# 赋予可执行权限
chmod +x /usr/local/redis/bin/master-slave_start.sh# 关闭脚本
vi /usr/local/redis/bin/master-slave_shutdown.sh#!/bin/bashkill -9 $(ps -ef | grep 1637 | grep -v grep | awk '{print $2}')# 赋予可执行权限
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 参数指定密码
# 从库实例开启主从redis-cli -h 192.168.1.100 -p 16371 -a dongdong slaveof 192.168.1.100 16370redis-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号数据库创建测试数据
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号数据库查看是否同步主库的11号数据库
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号数据库查看是否同步主库的11号数据库
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
# 只剩下一个 从节点了# 把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了

二. 跨节点部署Redis主从

1. 环境介绍

操作系统Centos 7Centos 7Centos 7
内核版本Linux 3.10.0-957.el7.x86_64Linux 3.10.0-957.el7.x86_64Linux 3.10.0-957.el7.x86_64
主机名称masterslave1slave2
IP192.168.1.100192.168.1.200192.168.1.250
端口163801638116382

2. 修改配置文件

2.1 master

# 创建redis数据存储目录
mkdir -p /usr/local/redis/data/16380
# 创建redis配置文件存储目录
mkdir -p /usr/local/redis/conf/16380
# 创建redis日志存储目录
mkdir -p /usr/local/redis/log/16380# 创建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 
# 数据存储目录,目录要提前创建好
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

# 创建redis数据存储目录
mkdir -p /usr/local/redis/data/16381
# 创建redis配置文件存储目录
mkdir -p /usr/local/redis/conf/16381
# 创建redis日志存储目录
mkdir -p /usr/local/redis/log/16381# 创建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 
# 数据存储目录,目录要提前创建好
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

# 创建redis数据存储目录
mkdir -p /usr/local/redis/data/16382
# 创建redis配置文件存储目录
mkdir -p /usr/local/redis/conf/16382
# 创建redis日志存储目录
mkdir -p /usr/local/redis/log/16382# 创建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 
# 数据存储目录,目录要提前创建好
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号数据库创建测试数据
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号数据库查看是否同步主库的11号数据库
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号数据库查看是否同步主库的11号数据库
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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/49400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Modbus转BACnet/IP网关BA100-配硬件说明

在现代自动化系统中&#xff0c;不同设备和系统之间的通信至关重要&#xff0c;Modbus和BACnet/IP协议虽然各有优势&#xff0c;但它们之间的直接通信存在障碍。钡铼Modbus转BACnet/IP网关作为连接这两种协议的桥梁&#xff0c;允许不同系统之间的无缝数据交换。 一、Modbus转…

Ubuntu22.04安装X11vnc方法

一、问题描述 客户想使用Ubuntu图形化功能,需要远程去操作界面 二、安装方法如下 通常情况&#xff0c;ubuntu不允许root用户运行GUI程序。因此&#xff0c;我们创建普通用户进行安装配置X11vnc服务 1.安装x11vnc程序包 sudo apt-get update sudo apt-get install -y x11v…

内网隧道——HTTP隧道

文章目录 一、ReGeorg二、Neo-reGeorg三、Pivotnacci 实验网络拓扑如下&#xff1a; 攻击机kali IP&#xff1a;192.168.111.0 跳板机win7 IP&#xff1a;192.168.111.128&#xff0c;192.168.52.143 靶机win server 2008 IP&#xff1a;192.168.52.138 攻击机与Web服务器彼此之…

React的生命周期?

React的生命周期分为三个主要阶段&#xff1a;挂载&#xff08;Mounting&#xff09;、更新&#xff08;Updating&#xff09;和卸载&#xff08;Unmounting&#xff09;。 1、挂载&#xff08;Mounting&#xff09; 当组件实例被创建并插入 DOM 时调用的生命周期方法&#x…

pdf压缩在线免费 pdf压缩在线免费网页版 在线pdf压缩在线免费 pdf压缩工具在线免费

在数字化时代&#xff0c;pdf文件已经成为我们工作、学习和生活中的重要组成部分。然而&#xff0c;体积庞大的pdf文件往往给我们的存储空间、传输速度带来不小的压力。本文将为您揭秘几种简单有效的pdf文件压缩方法&#xff0c;让您轻松应对文件体积过大带来的困扰。 方法一、…

PLC通过IGT-SER系列智能网关快速实现WebService接口调用案例

IGT-SER系列智能网关支持PLC设备数据对接到各种系统平台&#xff0c;包括SQL数据库&#xff0c;以及MQTT、HTTP协议的数据服务端&#xff1b;通过其边缘计算功能和脚本生成的工具软件&#xff0c;非常方便快速实现PLC、智能仪表与WebService服务端通信。 本文是通过智能网关读取…

探索Perl的图形用户界面开发:工具、技巧与实践

在计算机编程领域&#xff0c;图形用户界面&#xff08;GUI&#xff09;的开发是提升用户体验的关键环节。Perl&#xff0c;作为一种功能强大的脚本语言&#xff0c;同样提供了多种工具和库来支持GUI的开发。本文将详细介绍Perl中进行GUI开发的几种主要方法&#xff0c;包括使用…

如何切换网络IP地址?IP切换的应用与方法

随着互联网的发展和普及&#xff0c;我们日常生活中的各种操作和通讯越来越依赖互联网。互联网上存在的一些问题和限制使得更换IP地址成为必要的步骤。下面我们将探讨在互联网业务中&#xff0c;需要更换IP地址的原因与方法。 一、IP轮换的应用 解决访问限制&#xff1a;解决访…

Intellij IDEA多模块分组 实现move to group

新版本idea&#xff0c;没有了move to group的功能&#xff0c;导致模块很多的时候不能分组。2018版本有。 这个分组是虚拟的&#xff0c;不会在磁盘中实际存在。 要实现这个功能&#xff0c;只需要改modules.xml即可。 步骤 1. 找到配置文件 .idea目录下的moudules.xml 2.…

在linux系统上部署php程序计划任务每5分钟执行一次

1.打开终端&#xff0c;运行 crontab -e 命令来编辑当前用户的cron任务。 2.进入编辑页后&#xff0c;编写一个定时任务&#xff0c;每5分钟执行一次 */5 * * * * /usr/bin/docker exec <container_name_or_id> php /path/to/your/php/script.php*/5 * * * * 表示每5分钟…

嵌入式数字信号处理器(DSP)高频面试题及参考答案

目录 什么是DSP?它的主要应用领域有哪些? 描述DSP的架构特点 什么是定点DSP与浮点DSP?它们的区别是什么? 解释DSP中常见的数据类型及其位宽 什么是采样定理?为什么它对DSP很重要? 解释FFT(快速傅里叶变换)算法及其在DSP中的作用 描述IIR滤波器与FIR滤波器的区别…

新增ClamAV病毒扫描功能、支持Java和Go运行环境,1Panel开源面板v1.10.12版本发布

2024年7月19日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布了v1.10.12版本。 在这一版本中&#xff0c;1Panel新增了多项实用功能。社区版方面&#xff0c;1Panel新增ClamAV病毒扫描功能、支持Java和Go运行环境&#xff0c;同时1Panel还新增了文件编辑器…

探究项目未能获得ASPICE 1、2级能力的原因及改进策略

项目整体未能获得ASPICE 1、2级能力的原因可能涉及多个方面&#xff0c;以下是基于参考文章中的信息和可能的情境进行的分析&#xff1a; 1.过程成熟度不足&#xff1a;ASPICE&#xff08;Automotive Software Process Improvement and Capability Determination&#xff09;是…

微信小程序面试题汇总

面试题 1. 请简述微信小程序主要目录和文件的作用&#xff1f; 参考回答&#xff1a; 微信小程序主要目录和文件的作用&#xff1a;&#xff08;1&#xff09;project.config.json&#xff1a;项目配置文件&#xff0c;用的最多的就是配置是否开启https校验 &#xff08;2&am…

服务器数据恢复—Isilon存储集群节点误删除的数据恢复案例

Isilon存储结构&#xff1a; Isilon存储使用的是分布式文件系统OneFS。在Isilon存储集群里面每个节点均为单一的OneFS文件系统&#xff0c;所以Isilon存储在进行横向扩展的同时不会影响数据的正常使用。Isilon存储集群所有节点提供相同的功能&#xff0c;节点与节点之间没有主备…

怎样将对象转换为包含键值对的对象数组?然后又将数组转换为对象?

​ const formData {location: Park,address: 123 Main St,latitude: 37.7749,longitude: -122.4194 };​1、怎样把这个对象转化为一个数组&#xff1f; 2、然后又怎样把转化后的数组再转化回来&#xff1f; 3、怎样将这两个方法单独封装成函数&#xff1f; 方法 1: 将对象…

【CentOS】在CentOS上将MySQL从5.6升级到5.7

在CentOS上将MySQL从5.6升级到5.7 本文将详细介绍如何在CentOS上将MySQL从5.6升级到5.7&#xff0c;包括移除旧版本的存储库包的步骤。 1. 备份数据库 在进行升级之前&#xff0c;请确保已经备份了所有重要数据。可以使用mysqldump来导出所有数据库&#xff1a; mysqldump …

基于FPGA的以太网设计(3)----详解各类xMII接口

1、什么是xMII接口 MII (Media Independent Interface)接口,即介质无关接口或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。“介质无关” 表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。 MII接口是MAC和PHY之间的通信接口,MAC产生…

微软的Edge浏览器如何设置兼容模式

微软的Edge浏览器如何设置兼容模式&#xff1f; Microsoft Edge 在浏览部分网站的时候&#xff0c;会被标记为不兼容&#xff0c;会有此网站需要Internet Explorer的提示&#xff0c;虽然可以手动点击在 Microsoft Edge 中继续浏览&#xff0c;但是操作起来相对复杂&#xff0c…