文章目录
单点故障,实现容灾恢复效果(高可用)。读写分离的架构,满足读多写少的并发应用场景。cd /etc : 进入etc目录cp redis.conf redis6380.conf : 复制一份redis的配置文件cp redis.conf redis6381.conf : 复制一份redis的配置文件port : 端口号pidfile : pid的文件名logfile : 日志的文件名dbfilename : 修改持久化的文件名称daemonize : 设置为守护线程启动,yesredis-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:17378role: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:17378slaveof 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-nodelayslaveof no one断开与主节点的复制关系,再重启主节点从而避免这一问题。