当前位置: 首页 > article >正文

Redis集群_主从复制

Redis集群基本概念

  • 在实际项目中,一般不会只在一台机器上部署redis服务器,因为单台redis服务器不能满足高并发的压力,另外如果该服务器或者redis失效,整个系统就可能崩溃
  • 项目里一般会用主从复制的模式来提升性能,用集群模式来提升吞吐量并提升可用性

基于主从复制模式的集群

  • 在出从复制模式的集群里,主节点一般是一个,从节点一般是两个或者多个,写入主节点的数据会被复制到从节点上,这样一旦主节点出现故障,应用系统就能切换到从节点去读写数据,从而提升系统的可用性
  • 在采用主从复制模式里默认的读写分离机制,就能提升系统的缓存读写性能
  • 在实际应用中,如果有相应的设置,在向一台redis服务器里写数据后,这个数据可以复制到另一台(或多台)redis服务器,这里数据源叫主服务器(master),复制数据目的地的服务器叫从服务器(slave)

主从复制模式的优势

  • 可以把写操作集中到主服务器上,读操作集中到从服务器上,提升读写性能
  • 由于出现了数据备份,因此能提升数据的安全性

在这里插入图片描述

主从复制模式集群实操

1.用命令搭建主从集群

这里用docker容器搭建一主二从的集群,在配置主从关系时,需要在从节点上使用slaveof命令

1.1创建主节点
docker run -itd --name redis-master -p 6379:6379 redis:latest
1.2创建从节点

这里因为在一台机器上,所以需要配置不同的端口

docker run -itd --name redis-slave1 -p 6380:6380 redis:latest

获取容器的ip

docker inspect redis-master|grep IPAddress
[root@localhost ~]# docker inspect redis-master|grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

进入主节点容器

docker exec -it redis-master /bin/bash

连接redis

redis-cli

查看主从关系

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:dfbc81120a9de962ff09133c757d50239238955a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

进入从节点

docker exec -it redis-slave1 /bin/bash

连接redis

redis-cli

使用slaveof配置从属关系

这里的ip 端口就是主节点的ip 端口

127.0.0.1:6379> slaveof 172.17.0.2 6379
OK

查看主从关系

在这里插入图片描述

另一个从节点和以上操作一样,注意端口

2.通过配置搭建主从集群

创建主节点容器

docker run -itd --name redis-master -p 6379:6379 redis:latest

准备redis-slave1和redis-slave2配置文件

在这里插入图片描述

其中主要的配置是:

slaveof 127.12.0.2 6379

创建从节点一的容器

docker run -itd --name redis-slave1 -v /root/redis/redis-slave1/redis.conf:/redisConfig/redisSlave1.conf -p 6380:6380 redis:latest redis-server /redisConfig/redisSlave1.conf

进入从节点一容器

docker exec -it redis-slave1 /bin/bash

连接redis并查看从属关系

root@f4cfaf03ffec:/data# redis-cli
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:172.17.0.2
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:266
slave_priority:100
slave_read_only:1
connected_slaves:0
master_failover_state:no-failover
master_replid:1a8171720b8f1ebeb04c72020a2f05152f92006b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:266
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:266

从节点二创建也和上面类似,注意端口和配置即可

3.测试

在主节点上创建几个值

在这里插入图片描述

连接从节点进行查询

127.0.0.1:6379> get name
"yohoo"
127.0.0.1:6379> get age
"26"


http://www.kler.cn/news/305617.html

相关文章:

  • 每日学习一个数据结构-倒排表
  • Lua热更
  • 【在Linux世界中追寻伟大的One Piece】网络命令|验证UDP
  • Gitlab及Git使用说明
  • 05_Python数据类型_列表的相关运算
  • 日志收集工具 Fluentd vs Fluent Bit 的区别
  • 【SQL】百题计划:SQL最基本的判断和查询。
  • 实时(按帧)处理的低通滤波C语言实现
  • 3.js - 着色器设置点材质(螺旋星系特效)
  • 八股文知识汇总(常考)
  • java中的注解原理是什么?
  • 第十周:机器学习
  • 深度学习的关键数据结构——张量解释
  • [羊城杯 2020]Blackcat1
  • ThinkPHP8出租屋管理系统
  • 【高等数学学习记录】函数
  • RPC远程调用的序列化框架
  • 【python】OpenCV—Age and Gender Classification
  • Threejs合并模型动画(上)
  • quartz 搭配SQL Server时出现deadlock的解决方案
  • ClickHouse总结
  • 如何使用 Vue 3 的 Composition API
  • C++ | Leetcode C++题解之第406题根据身高重建队列
  • 阿里部分集团内部中间件简介
  • 【Elasticsearch系列四】ELK Stack
  • DroidBot-GPT: GPT-powered UI Automation for Android论文学习
  • C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(2)
  • 【编程基础知识】Java语言中字面字符和转义字符的区别
  • 自建,前端sdk库(react-utils-dev-sdk)
  • Pytorch2.4.0自动安装cudnn9.1??? pip安装cudnn方法