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

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"

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何增加Google收录量?
  • ASP.NET Core 中间件
  • 制造业必看!推荐几款设备管理软件,产品特点一目了然!
  • 用EA和SysML一步步建模(06)使命声明-解构需求02
  • 【数据结构】希尔排序(缩小增量排序)
  • 进程调度相关
  • 构建数字化时代的企业:数据驱动的信息架构战略
  • python实现插入排序算法
  • 高防IP是如何防御攻击
  • 【C++登堂入室】类和对象(中)——类的6个默认成员函数
  • SprinBoot+Vue民宿预约微信小程序的设计与实现
  • [数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别
  • 基于springboot的甜鱼闲置物品交易网站的设计与实现---附源码77155
  • 再次进阶 舞台王者 第八季完美童模全球赛品牌大使【韩嘉滢】赛场秀场超燃合集!
  • Playwright 自动化验证码教程
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Asm.js的简单介绍
  • ES6核心特性
  • javascript 总结(常用工具类的封装)
  • scrapy学习之路4(itemloder的使用)
  • V4L2视频输入框架概述
  • 从零搭建Koa2 Server
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 欢迎参加第二届中国游戏开发者大会
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 学习Vue.js的五个小例子
  • 中文输入法与React文本输入框的问题与解决方案
  • UI设计初学者应该如何入门?
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​马来语翻译中文去哪比较好?
  • $GOPATH/go.mod exists but should not goland
  • (1)(1.13) SiK无线电高级配置(五)
  • (Java入门)抽象类,接口,内部类
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)鸿鹄云架构一服务注册中心
  • (五)MySQL的备份及恢复
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .naturalWidth 和naturalHeight属性,
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net 流——流的类型体系简单介绍
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • /proc/vmstat 详解
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...