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

主从同步优化:

相关推荐
q***d17320 小时前
后端缓存技术学习资源,Redis+Memcached
redis·学习·缓存
m***119020 小时前
Redis 设置密码(配置文件、docker容器、命令行3种场景)
数据库·redis·docker
麦兜*21 小时前
Redis在Web3中的应用探索:作为链下状态缓存与索引层
java·spring boot·redis·spring cloud·缓存·docker·web3
爬山算法1 天前
Redis(127)Redis的内部数据结构是什么?
数据结构·数据库·redis
百***6972 天前
redis 使用
数据库·redis·缓存
爬山算法2 天前
Redis(124)Redis在电商系统中的应用有哪些?
数据库·redis·缓存
q***46522 天前
如何使用Spring Boot框架整合Redis:超详细案例教程
spring boot·redis·后端
朝九晚五ฺ2 天前
用Rust从零实现一个迷你Redis服务器
服务器·redis·rust
4***14902 天前
后端分布式缓存集群,Redis Sentinel
redis·分布式·缓存
瑞思蕊萌2 天前
redis实战篇--商品缓存模块
数据库·redis·缓存