redis主从集群及其原理(优化)

目录

一、Redis主从

搭建主从集群

主从同步原理:​编辑

主从同步优化:


一、Redis主从

搭建主从集群

那么我们接下来就在虚拟机当中搭建Redis的主从集群:

1.安装镜像:

通过docker images命令发现我们并没有下载redis镜像,因此需要把资料当中的tar包复制到虚拟机当中,通过docker load -i redis.tar指令加载tar包并再次使用docker images命令查看:

2.将带有以下配置信息的yml文件加载到虚拟机当中(/root/redis):

bash 复制代码
version: "3.2"

services:
  r1:
    image: redis:6.2.7
    container_name: r1
    network_mode: "host"
    entrypoint: ["redis-server", "--port", "7001"]
  r2:
    image: redis:6.2.7
    container_name: r2
    network_mode: "host"
    entrypoint: ["redis-server", "--port", "7002"]
  r3:
    image: redis:6.2.7
    container_name: r3
    network_mode: "host"
    entrypoint: ["redis-server", "--port", "7003"]

随后通过docker compose up -d命令运行集群(注意这里要cd到redis目录下才行):

3.配置主从关系,由于每个redis容器都认为自己是主节点,所以还需要手动配置主从关系:

通过docker exec -it r1 redis-cli -p 7001以及info replication指令查看r1容器的信息:

进入r2、r3配置主从关系:

bash 复制代码
# 连接r2
docker exec -it r2 redis-cli -p 7002
# 认r1主,也就是7001
slaveof 192.168.150.101 7001

这样一来我们就配置好了主从关系,并且我们能够发现:我们能在主节点读写数据,但是从节点只能读数据(来自主节点的数据)却不能写数据

主从同步原理:

那么redis怎么知道这个slave是不是第一次来的呢?首先我们得知道每一个redis在构建主从关系之前都会有一个属于自己的replicationID(简称replid),当它们之间产生主从关系时,原有的replid会被统一替换成一个相同的replid表示主从关系(例如r1是r2的master,那么它们俩原有不同的replid会被一个相同的replid替换);当一个redis断开连接后,它的replid没有变化,下次相连时master发现它们俩的replid一样说明以前有连接过,就是通过这样的方式判断是否初次连接

主从同步优化:

相关推荐
xiaogg367810 小时前
redis-cluster集群配置部署
数据库·redis·缓存
不剪发的Tony老师10 小时前
Redis Commander:一款基于Web、免费开源的Redis管理工具
数据库·redis
weixin_466814 小时前
Redis数据库基础
数据库·redis·缓存
半夏知半秋1 天前
redis-哨兵模式配置整理
数据库·redis·笔记·后端·学习·lua·安全架构
小丁爱养花2 天前
Redis 内部编码/单线程模型/string
数据库·redis·缓存·1024程序员节
爬山算法2 天前
Redis(84)如何解决Redis的缓存击穿问题?
java·redis·缓存
赵庆明老师2 天前
C# 结合Redis Cache 访问MySQL数据库
数据库·redis·c#
李少兄2 天前
记一次 Spring Boot 项目中 Redis 工具类的重构实践
spring boot·redis·重构
Merlos_wind2 天前
【Redis典型应用——缓存详解】
数据库·redis·缓存