文章目录
单点故障
,实现容灾恢复效果(高可用)。读写分离的架构,满足读多写少的并发应用场景。cd /etc
: 进入etc
目录cp redis.conf redis6380.conf
: 复制一份redis的配置文件cp redis.conf redis6381.conf
: 复制一份redis的配置文件port
: 端口号pidfile
: pid的文件名logfile
: 日志的文件名dbfilename
: 修改持久化的文件名称daemonize
: 设置为守护线程启动,yes
redis-server redis.conf
: 启动端口为6379的redisredis-server redis6380.conf
: 启动端口为6380的redisredis-server redis6381.conf
: 启动端口为6381的redisredis-cli -h 127.0.0.1 -p 6379
: 连接端口为6379的redisredis-cli -h 127.0.0.1 -p 6380
: 连接端口为6380的redisredis-cli -h 127.0.0.1 -p 6381
: 连接端口为6381的redisinfo replication
,输出以下信息# Replication
role:master # 角色,默认是主节点
connected_slaves:0
master_repl_offset:37617 # 自身复制偏移量
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:17378
role:slave # 角色为从节点
master_host:127.0.0.1 # 主节点ip地址
master_port:6381 # 端口
master_link_status:up # 是否已经连接上 up表示连接上,down表示没有连接
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:37688
slave_priority:100
slave_read_only:1 # 从节点设置只读,不能写
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:17378
slaveof ip port
: 建立复制,在哪个redis中执行这条语句,那么哪个redis就作为从节点
slaveof 127.0.0.1 6381
: 6381端口开启的redis作为主节点# slaveof <masterip> <masterport>
,我们可以在这个地方配置slaveof 127.0.0.1 6381
全量复制
,即是主节点中的内容将会更新到从节点中get key
,不能执行set ke偶们y value
set name 陈加兵
,那么在从节点中就会出现name
这个keyslaveof no one
: 断开复制
slaveof no one
,那么将会断开和主节点的关系,此时的从节点将会成为主节点,可以使用info replication
查看
slaveof{newMasterIp}{newMasterPort}
命令即可,例如把6380节从原来的复制6379节点变为复制6381节点requirepass
参数进行密码验证,这时所有的客户端访问必须使用auth
命令实行校验。从节点与主节点的复制连接是通过一个特殊标识的客户端来完成,因此需要配置从节点的masterauth参数与主节点密码保持一致,这样从节点才可以正确地连接到主节点并发起复制流程。slave-read-only=yes
配置为只读模式。由于复制只能从主节点到从节点,对于从节点的任何修改主节点都无法感知,修改从节点会造成主从数据不一致。因此建议线上不要修改从节点的只读模式。repl-disable-tcp-nodelay
参数用于控制是否关闭TCP_NODELAY
,默认关闭,说明如下:repl-disable-tcp-nodelay
;如果考虑高容灾性,可以同城跨机房部署并开启repl-disable-tcp-nodelay
slaveof no one
断开与主节点的复制关系,再重启主节点从而避免这一问题。