搭建redis主从同步实现读写分离(原理剖析)
文章目录
- 搭建redis主从同步实现读写分离(原理剖析)
- 前言
- 一、搭建主从同步
- 二、同步原理
前言
为什么要学习redis主从同步,实现读写分析。因为单机的redis虽然是基于内存,单机并发已经能支撑很高。但是随着业务量的发展还是存在单机请求上限的瓶颈。所以redis提供了读写分离,主从同步的模式。可以让redis集群指定主节点,与从节点,一般来说大部分的业务都是读多,写少,所以一般都是让主节点来接收写请求,从节点来接收读请求
一、搭建主从同步
1.新建三个redis实例
2.修改每个redis的启动端口(因为当前演示的是本机单机环境搭建redis集群,所以要修改 防止端口冲突)
分别修改为:6379(master) node1-node3 6380 6381 6382
3.设置主从关系
有临时和永久声明的主从操作
临时声明:
先启动所有实例,cmd进去 输入指令
redis-server.exe redis.windows.conf
执行 SLAVEOF host port
D:\redis\sentinel-model\ndoe1>redis-cli.exe -p 6380
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6380> ^C
D:\redis\sentinel-model\ndoe1>redis-cli.exe -p 6381
127.0.0.1:6381> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6381> ^C
D:\redis\sentinel-model\ndoe1>redis-cli.exe -p 6382
127.0.0.1:6382> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6382>
查看集群状态
D:\redis\sentinel-model\ndoe1>redis-cli.exe -p 6380
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:8
master_sync_in_progress:0
slave_repl_offset:534
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:0033385853630adf5c48ead5989e6a8b1084fdfb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:534
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:534
127.0.0.1:6380>
此时就可以看到 当前的redis是从节点 我们写操作会被禁止
只可以读
在主节点就可以读或者写
在其他从节点可以查到一样的数据
主从架构搭建完毕
二、同步原理