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 |
Redis | 7.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 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
# 创建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.
相关文章:
Redis 主从搭建
Redis主从搭建 7.2.5 文章目录 一. 同主机搭建Redis主从1. 环境介绍2. 环境前准备工作3. 安装 Redis 7.2.54. redis 配置修改并且启动4.1 修改配置文件4.2 编写启动脚本 5. 开启主从5.1 开启5.2 主库实例查看主从信息5.3 从库实例查看主从信息5.4 验证主从配置是否生效 6. 解除…...
LeetCode 129, 133, 136
文章目录 129. 求根节点到叶节点数字之和题目链接标签思路代码 133. 克隆图题目链接标签思路代码 136. 只出现一次的数字题目链接标签思路代码 129. 求根节点到叶节点数字之和 题目链接 129. 求根节点到叶节点数字之和 标签 树 深度优先搜索 二叉树 思路 由于本题需要 从…...
macOS 环境Qt Creator 快捷键
在 macOS 环境下,Qt Creator 是一个流行的集成开发环境(IDE),用于开发 Qt 项目。下面是一些常用的快捷键和操作技巧,帮助你更高效地使用 Qt Creator 进行项目开发和管理: 在 macOS 中,Cmd 键 四…...

【C# WInForm】将TextBox从输入框设置为文本框
1.需求情形: textbox作为最常用的控件之一,通常是用来输入文本信息或者显示文字,但是如果要在界面中显示大段文本,一个带有边框、可选中的文本样式似乎不合适。像这样: 我需要的是这段文字不仅能跨行,而且…...

minio 服务docker配置
用minio docker配置了一个服务,分享链接始终是127.0.01开始的, 改成docker的host的ip则提示签名不匹配, 好在这个文件主要是用来下载的,所以可以通过设置bucket的匿名访问权限来实现下载; 这样不需要后面的地址参数就…...
开源模型应用落地-LangChain高阶-智能体探究-自定义agent(五)
一、前言 大模型具有非常强大的功能,可以解答疑问、撰写报告和文档、总结内容、进行翻译等各种日常工作任务。然而,大模型还可以应用于更多的场景,发挥出更强大的作用。 通过智能体,我们可以实现许多有价值的事情,比如:在日常生活中,我们能借助智能体实现智能家居的自动化…...

16_网络IPC4-数据传输
send() 用于流式套接字 向SOCKET发送数据 。 Socket 只是通信节点,通信之前需要连接,即发送端发送之前 需要知道对端的地址,才能找到对端的socket节点,才能发送成功。而接收端不同,接收函数 如 recv () 不需要一定知道…...

怎样做好仓库管理工作?如何利用仓库管理系统进行有效管理?
我前前后后跑遍了十几家仓储设备公司,跟那些制造业的朋友们聊了个痛快,从他们那儿学到了不少仓库管理的实践方法。 回来自己整理了一套仓库管理更高效的实用方法,现在就来跟大家伙儿聊聊仓库管理中那些常见问题,以及我是怎么琢磨…...
PHP-显示所有错误信息
1 需求 2 接口 3 示例 要在 PHP 中显示所有错误信息,你可以通过修改 php.ini 配置文件或在你的 PHP 脚本中设置错误报告级别来实现。以下是两种常见的方法: 方法一:修改 php.ini 配置文件 找到你的 php.ini 文件。这个文件的位置取决于你的 P…...
js修改hash的方法
关键: window.onhashchange (event) > {// do something }hash变化包括 js修改hash手动修改url的hash浏览器前进、后退 js修改hash: location.href "#user";在vue-router等路由组件中如何实现history模式呢? 关键函数:hi…...

机械学习—零基础学习日志(高数10——函数图形)
零基础为了学人工智能,真的开始复习高数 函数图像,开始新的学习!本次就多做一做题目! 第一题: 这个解法是有点不太懂的了。以后再多研究一下。再出一道题目。 张宇老师,比较多提示了大家,一定…...

Godot游戏制作 03世界构建1.0版
在game场景,删除StaticBody2D节点,添加TileMap节点 添加TileSet图块集 添加TileSet源 拖动图片到图块,自动创建图块 使用橡皮擦擦除。取消橡皮擦后按住Shift创建大型图块。 进入选择模式,TileMap选择绘制,选中图块后在…...

MySql性能调优05-[sql实战演练]
sql实战演练 行列转换行列式转换第一题【列转行】第二题【列转行】 having的使用找到表中,名字重复的项有数据表employee,包含如下字段id、name、department、age,编写SQL,找到不与其他人同龄的年纪最大的员工的年龄有数据表emplo…...

go-kratos 学习笔记(1) 安装
简介: Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具。 使用步骤: 安装cli工具 go install github.com/go-kratos/kratos/cmd/kratos/v2latest 创建项目 通过 kratos 命令创建项目模板 # 国内拉取失败可使用gitee源 krat…...

蚂蚁集团推出EchoMimic:能通过音频和面部标志生成逼真的肖像动画视频
蚂蚁集团最近推出了一项名为EchoMimic的新技术。能通过音频和面部标志生成逼真的肖像动画视频,让你的声音和面部动作被完美复制到视频中,效果自然如照镜子。 EchoMimic不仅可以单独使用音频或面部标志点生成肖像视频,也可以将两者结合&#…...
量化机器人对市场趋势的反应速度
量化机器人对市场趋势的反应速度在当前金融市场中具有重要意义。随着算法和大数据技术的发展,量化机器人通过先进的计算能力和实时数据分析,能够迅速捕捉市场变化,做出及时的交易决策。这种快速反应能力,不仅提高了交易效率&#…...

深入指南:VitePress 如何自定义样式
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

逃离的日常:自闭症孩子的课堂小插曲
自闭症孩子在课堂上突然离座,是一个复杂而多面的现象,背后往往隐藏着他们独特的情感表达与需求未被充分理解的现状。自闭症,作为一种神经发展性障碍,影响着孩子的社交互动、沟通能力及行为模式。在课堂上,这些差异可能…...

LLM模型与实践之基于MindSpore的GPT2文本摘要
前言 安装环境 !pip install tokenizers0.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple # 该案例在 mindnlp 0.3.1 版本完成适配,如果发现案例跑不通,可以指定mindnlp版本,执行!pip install mindnlp0.3.1 !pip install mindnlp 数据加…...

【Android】使用视图绑定ViewBinding来代替findViewById
文章目录 介绍作用用法开启ViewBinding功能自动生成绑定类在Activity中使用访问视图控件 区别 介绍 ViewBinding 是 Android 开发中的一个功能,它简化了访问视图的过程,避免了使用 findViewById 的繁琐步骤。它通过生成与布局文件相对应的绑定类…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...