redis主从复制-读写分离

由于没有多台服务器,又懒得创建多个虚拟机  此处使用多进程进行模拟

一、创建三个目录用来存放数据文件、日志文件、配置文件

mkdir -p /opt/redis/data
mkdir -p /opt/redis/log
mkdir -p /opt/redis/conf

二、复制redis.conf文件到/opt/redis/conf目录下 为 redis-public.conf 作为公共配置文件

三、修改redis-public.conf 文件

# bind 127.0.0.1      注释
protected-mode no 关闭保护模式
# port 6379 注释掉port 此步骤如果放在多台服务器可以不做修改 因为即使port相同但是ip不同
daemonize yes 修改为后台启动
#  pidfile /var/run/redis_6379.pid 注释进程编号记录文件
此步骤如果放在多台服务器可以不做修改
# logfile "" 注释日志文件 此步骤如果放在多台服务器可以不做修改 或者指定路径存放
# dbfilename dump.rdb    注释公共配置数据文件
 dir /opt/redis/data
修改数据文件路径
masterauth 123456 添加从服务器访问主服务器认证

requirepass 123456 设置密码
appendonly no 设置成no
# appendfilename "appendonly.aof"
注释公共配置追加文件

replica-read-only  yes         从服务器默认只读不允许写 不需要修改  需注意 之前的版本里好像是  slave-read-only

四、创建三个配置文件

touch redis-6379.conf
touch redis-6380.conf
touch redis-6381.conf

五、填写三个配置文件

主服务器

# 引用公共配置
include /opt/redis/conf/redis-public.conf
# 进程编号记录文件
pidfile /var/run/redis-6379.pid
# 进程端口号
port 6379
# 日志记录文件
logfile "/opt/redis/log/redis-6379.log"
# 数据记录文件
dbfilename dump-6379.rdb
# 追加文件名称
appendfilename "appendonly-6379.aof"
# 下面的配置无需在主服务器上配置
# 备份服务器从属于主服务器  推荐配置局域网ip
# slaveof 222.111.213.55 6379                      

slave1  服务器

# 引用公共配置
include /opt/redis/conf/redis-public.conf
# 进程编号记录文件
pidfile /var/run/redis-6380.pid
# 进程端口号
port 6380
# 日志记录文件
logfile "/opt/redis/log/redis-6380.log"
# 数据记录文件
dbfilename dump-6380.rdb
# 追加文件名称
appendfilename "appendonly-6380.aof"
# 下面的配置无需在主服务器上配置
# 备份服务器从属于主服务器  推荐配置局域网ip
slaveof 222.111.213.55 6379

 

slave2 服务器

# 引用公共配置
include /opt/redis/conf/redis-public.conf
# 进程编号记录文件
pidfile /var/run/redis-6381.pid
# 进程端口号
port 6381
# 日志记录文件
logfile "/opt/redis/log/redis-6381.log"
# 数据记录文件
dbfilename dump-6381.rdb
# 追加文件名称
appendfilename "appendonly-6381.aof"
# 下面的配置无需在主服务器上配置
# 备份服务器从属于主服务器  推荐配置局域网ip
slaveof 222.111.213.55 6379

六、启动三个redis

/usr/local/bin/redis-server  /opt/redis/conf/redis-6379.conf 
/usr/local/bin/redis-server  /opt/redis/conf/redis-6380.conf 
/usr/local/bin/redis-server  /opt/redis/conf/redis-6381.conf 

七、 查看redis的主从状态

 

6379:
    进入
    redis-cli -p 6379
   命令:info replication
  
# Replication
role:master
connected_slaves:2
slave0:ip=47.97.223.155,port=6380,state=online,offset=532,lag=0
slave1:ip=47.97.223.155,port=6381,state=online,offset=532,lag=0
master_failover_state:no-failover
master_replid:c2e0aeeb9bcf8d7a16914afbe0125f333599d402
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:532
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:532

    验证:主服务器存入键值对a:111

    set a 111


  
6380: 进入 redis-cli -p 6380
命令:info replication
# Replication
role:slave
master_host:47.97.223.155
master_port:6379
master_link_status:up
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_read_repl_offset:644
slave_repl_offset:644
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:c2e0aeeb9bcf8d7a16914afbe0125f333599d402
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:644
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:644

 

 


 


6381: 进入 redis-cli -p 6381
   命令:info replication
# Replication
role:slave
master_host:47.97.223.155
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_read_repl_offset:700
slave_repl_offset:700
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:c2e0aeeb9bcf8d7a16914afbe0125f333599d402
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:700
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:15
repl_backlog_histlen:686

 

 



 

 

 

完结

 

posted @ 2023-02-05 17:24  许光宗  阅读(46)  评论(0编辑  收藏  举报