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

主从同步优化:

相关推荐
win x4 小时前
Redis 使用~如何在Java中连接使用redis
java·数据库·redis
程序员萌萌8 小时前
Redis的缓存机制和淘汰策略详解
数据库·redis·缓存机制·淘汰策略
深蓝电商API14 小时前
Redis在海淘场景下的缓存策略设计
数据库·redis·缓存·海淘
杰克尼14 小时前
redis(day04-达人探店)
数据库·redis·缓存
Chasing Aurora16 小时前
整理常用的开发工具使用问题和小贴士(二)——软件和浏览器
redis·python·mysql·maven
停水咋洗澡17 小时前
Redis Sentinel高可用实战:主从自动故障转移
java·redis·sentinel
等....17 小时前
Redis使用
数据库·redis·mybatis
一只小bit17 小时前
Redis 初步入门教程:简单介绍和安装配置
数据库·redis·缓存
架构师老Y18 小时前
012、缓存架构设计:Redis高级应用与优化
redis·python·架构
刘~浪地球18 小时前
数据库与缓存--Redis 集群架构与优化
数据库·redis·缓存