网站首页的尺寸做多大,wordpress 留言 插件,上海市500强企业名单,移动网站源码文章目录 1、概念1.1、主从复制的作用主要包括1.2、一般来说#xff0c;要将Redis运用于工程项目中#xff0c;只使用一台Redis是万万不能的#xff08;宕机#xff09;#xff0c;原因如下 2、环境配置2.1、复制拷贝3个配置文件#xff0c;然后修改对应的信息拷贝文件改… 文章目录 1、概念1.1、主从复制的作用主要包括1.2、一般来说要将Redis运用于工程项目中只使用一台Redis是万万不能的宕机原因如下 2、环境配置2.1、复制拷贝3个配置文件然后修改对应的信息拷贝文件改端口改pid文件名log文件名dump.rdb文件名字 2.2、 分别启动三个服务 3、配置一主二从3.1、分别连接三个redis-cli3.2、配置从机认老大3.3、在主机中查看从机信息3.4、从配置文件实现主从复制3.5、细节主机写从机只能读取内容 4、主从测试4.2、复制原理4.3、另一种主从配置方案、层层链路谋朝篡位 参考狂神说Java 1、概念
主从复制是指将一台Redis服务器的数据复制到其他的Redis服务器。前者称为主节点Master/Leader,后者称为从节点Slave/Follower 数据的复制是单向的只能由主节点复制到从节点主节点以写为主、从节点以读为主。 默认情况下每台Redis服务器都是主节点 一个主节点可以有0个或者多个从节点但每个从节点只能由一个主节点。(父子关系)
1.1、主从复制的作用主要包括
数据冗余主从复制实现了数据的热备份是持久化之外的一种数据冗余的方式。故障恢复当主节点故障时从节点可以暂时替代主节点提供服务是一种服务冗余的方式负载均衡在主从复制的基础上配合读写分离由主节点进行写操作从节点进行读操作分担服务器的负载尤其是在多读少写的场景下通过多个从节点分担负载提高并发量。高可用基石主从复制还是 哨兵和集群能够实施的基础。
1.2、一般来说要将Redis运用于工程项目中只使用一台Redis是万万不能的宕机原因如下
从结构上单个Redis服务器会发生单点故障并且一台服务器需要处理所有的请求负载压力较 大从容量上单个Redis服务器内存容量有限就算一台Redis服务器内存容量为256G也不能将所有 内存用作Redis存储内存一般来说单台Redis大使用内存不应该超过20G。电商网站上的商品一般都是一次上传无数次浏览的说专业点也就是多读少写。 对于这种场景我们可以使如下这种架构 主从复制读写分离80%的情况下都是在进行读操作减缓服务器的压力架构中经常使用 一主 二从 只要在公司中主从复制就是必须要使用的因为在真实的项目中不可能单机使用Redis
2、环境配置
只配置从库不用配置主库!因为每个redis默认都是主库。 info replication # 查看当前库的信息 # Replication 在这里插入代码片127.0.0.1:6379 info replication # 查看当前库的信息 # Replication
role:master # 角色
master connected_slaves:0 # 没有从机
master_replid:b63c90e6c501143759cb0e7f450bd1eb0c70882a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:02.1、复制拷贝3个配置文件然后修改对应的信息
通过配置文件启动redis分别在三个端口启动redis服务
端口pid 名字log文件名字dump.rdb 名字
拷贝文件
windows操作如下
改端口
分别改端口
改pid文件名 log文件名 dump.rdb文件名字 2.2、 分别启动三个服务
开三个命令行 windows/linux: 在redis目录下查看是否启动成功有log文件 linux修改完毕之后启动我们的3个redis服务器可以通过进程信息查看
3、配置一主二从
默认情况下每台Redis服务器都是主节点我们一般情况下只用配置从就好了 认老大 一主 79二从8081
3.1、分别连接三个redis-cli
开三个窗口命令如下
3.2、配置从机认老大
命令 slaveof [ip] [port] 如下配置6380。6381的配置操作相同 127.0.0.1:6380 SLAVEOF 127.0.0.1 6379 # SLAVEOF host 6379 找谁当自己的老大
OK
127.0.0.1:6380 info replication
# Replication
role:slave # 当前角色是从机
master_host:127.0.0.1 # 可以的看到主机的信息
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:14
slave_priority:100
slave_read_only:1
connected_slaves:0 master_replid:a81be8dd257636b2d3e7a9f595e69d73ff03774e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:14
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:14# 在主机中查看
127.0.0.1:6379 info replication
# Replication
role:master connected_slaves:1 # 多了从机的配置
slave0:ip127.0.0.1,port6380,stateonline,offset42,lag1 # 多了从机的配置
master_replid:a81be8dd257636b2d3e7a9f595e69d73ff03774e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:42
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:423.3、在主机中查看从机信息
info replication 如果两个都配置完了就是有两个从机
3.4、从配置文件实现主从复制
真实的从主配置应该在配置文件中配置这样的话是永久的我们这里用的是命令暂时的 去掉注释换成对应的ip和端口 3.5、细节
主机可以写从机不能写只能读主机中的所有信息和数据都会自动从机保存
主机写 从机只能读取内容 4、主从测试
主机断开连接从机依旧连接到主机的但是没有写操作这个候主机如果回来了从机依旧可以直接获取到主机写的信息
如果是使用命令行来配置的主从而不是配置文件这个时候从机如果重启了就会变回主机但是只要变为从机立马就会从主机中获取值
4.2、复制原理
Slave 启动成功连接到 master 后会发送一个sync同步命令Master 接到命令启动后台的存盘进程同时收集所有接收到的用于修改数据集命令在后台进程执行。 完毕之后master将传送整个数据文件到slave并完成一次完全同步。全量复制全量复制slave服务在接收到数据库文件数据后将其存盘并加载到内存中。增量复制Master 继续将新的所有收集到的修改命令依次传给slave完成同步但是只要是重新连接master一次完全同步全量复制将被自动执行 我们的数据一定可以在从机中看到
4.3、另一种主从配置方案、层层链路
上一个M链接下一个 S 这时候也可以完成我们的主从复制 如果没有老大了这个时候能不能选择一个老大出来呢在哨兵模式之前需要手动
谋朝篡位
如果主机断开了连接我们可以使用 SLAVEOF no one 让自己变成主机其他的节点就可以手动连接到最新的这个主节点手动如果这个时候老大修复了那就只能重新配置连接 上面这些都是手动的后面会有哨兵模式自动