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一样说明以前有连接过,就是通过这样的方式判断是否初次连接

主从同步优化:

相关推荐
anzhxu21 分钟前
Ubuntu上安装、使用Redis的详细教程
redis·ubuntu·bootstrap
小江的记录本1 小时前
【Redis】Redis常用命令速查表(完整版)
java·前端·数据库·redis·后端·spring·缓存
ZHOUPUYU2 小时前
从缓存到消息队列的全面应用,PHP与Redis深度实战
redis·缓存·php
永远睡不够的入2 小时前
C++继承详解
java·c++·redis
wyt53142914 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
vpk11215 小时前
Docker Compose 安装 Redis
redis·docker·容器
我真会写代码18 小时前
Redis高频面试题(含标准答案,覆盖基础+进阶+实战)
数据库·redis·缓存
6+h19 小时前
【Redis】缓存问题及解决方案
数据库·redis·缓存
6+h20 小时前
【Redis】高可用核心讲解
数据库·redis·缓存
Aloha_up21 小时前
redis与数据库的一致性问题分析
数据库·redis·缓存