13.redis集群、主从复制、哨兵

news2024/11/28 4:47:54

1.redis主从复制

        主从复制是指将一台redis服务器(主节点-master)的数据复制到其他的redis服务器(从节点-slave),默认每台redis服务器都是主节点,每个主节点可以有多个或没有从节点,但一个从节点只能有一个主节点

1.1 主从复制的作用

        数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式

        故障恢复:当主节点出现问题时,可以由从节点提供服务

        负载均衡:在主从复制的基础上配合读写分离,主节点提供写服务,从节点提供读服务,分担服务器负载

        高可用基石:主从复制是哨兵和集群能够实施的基础

1.2 常见主从结构

        一主一从:用于主节点故障转移从节点,主要为了数据安全性和避免持久化对主节点的影响

        一主多从:主要针对读较多的场景,读由多个节点分担,但影响主节点的稳定,影响带宽

        树状主从:为了缓解一主多从导致的主节点压力大的问题,形成层级结构,主管从-从再管从

1.3 实现主从复制

        将redis.conf复制多份并修改配置

92          prot    6379
158        pidfile /var/run/redis_6379.pid
171        logfile "redis6379.log"
253        dbfilename dump6379.rdb

        可以用指令批量替换

:%s/6379/6380/g  

        启动不同服务器并开启不同终端连接不同服务器

redis-server redis6379.conf

redis-cli -p 6379

        输入info replication可以查看当前服务器的角色等信息

        在服务器下输入指令,设置当前服务为从服务器和其主服务器是谁

salveof 主服务器ip 端口号

2.redis哨兵

        当主服务器宕机时,为了保持功能的正常实现,我们需要一个哨兵来选一台从服务器成为主服务器;(哨兵也是一台单独的redis服务器,连接主服务器,并经过主连接从)

        为了防止单个哨兵出现宕机误判等问题,我们还可以使用多个哨兵(必须为奇数),设置一个投票参数,只有当达到这个数目的哨兵认为主服务器宕机,才会主从切换

        哨兵的sentinel.conf应该如下设置(注释去掉)

protected-mode no                # 关闭保护模式,方便测试
port 26379                        # 哨兵的端口
sentinel monitor mymaster 192.168.41.226 6379 1        

# 192.168.41.226:主机ip 6379:端口     1:至少几个哨兵认为主机下线时进行故障切换

         输入redis-sentinel sentinel6379.conf 启动哨兵

3.redis集群

        从redis 3.0后版本都支持redis-cluster集群,就是开启多台redis主服务器连接一起形成集群,

这是为了解决sentinel模式虽然能满足大多数需求,但无法处理大量写的请求的问题;

         这也是经典的P2P(去中心化)

3.1 redis集群的实现

  • 在/usr/local/redis下创建redis-cluster目录

  • 拷贝redis6379到redis-cluster中并命名为redis8001.conf

  • 92   修改redis8001.conf中的端口号

  • 158 修改pidfile

  • 171 修改日志文件

  • 253 修改rdb文件

  • 699 开启aof设为yes

  • 703 指定aof文件名

  • 832 开启集群 设为yes

  • 840 指定nodes配置文件

        为了方便多个redis服务器的启动,我们可以编写一个启动脚本,在/user/local/redis下创建start_all.sh文件,在文件中加入

redis-server redis-cluster/redis8001.conf
redis-server redis-cluster/redis8002.conf
redis-server redis-cluster/redis8003.conf
redis-server redis-cluster/redis8004.conf
redis-server redis-cluster/redis8005.conf
redis-server redis-cluster/redis8006.conf
ps -ef|grep redis

        保存退出,为start_all.sh文件添加执行权限

chmod +x start_all.sh

         启动redis

./start_all

        创建集群

redis-cli --cluster create 192.168.74.130:8001 192.168.74.130:8002 192.168.74.130:8003 192.168.74.130:8004 192.168.74.130:8005 192.168.74.130:8006 --cluster-replicas 1 

        创建过程中要输入yes 

        连接redis集群要使用-c

redis-cli -c -p 8001

        创建集群关闭脚本

#!/bin/bash
PORT=8001
ENDPORT=8006
while [ $((PORT <= ENDPORT)) != "0" ]; do
   echo "Stopping Redis $PORT"
   redis-cli -p $PORT shutdown
   PORT=$((PORT+1))
done
echo "done"
exit 0 

        添加执行权限 

chmod +x stop_all.sh  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/940239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第五十二天|LeetCode 84.柱状图中最大的矩形

LeetCode 84.柱状图中最大的矩形 代码如下&#xff08;Java&#xff09;&#xff1a;暴力解法 class Solution {public int largestRectangleArea(int[] heights) {int length heights.length;int[] minLeftIndex new int[length];int[] minRightIndex new int[length];min…

Java实现根据关键词搜索1688商品新品数据方法,1688API节课申请指南

要通过1688的API获取商品新品数据&#xff0c;您可以使用1688开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过1688开放平台API获取商品新品数据&#xff1a; 首先&#xff0c;确保您已注册成为1688开放平台的开发者&#xff0c;并创…

【猿灰灰赠书活动 - 03期】- 【RHCSA/RHCE 红帽Linux认证学习指南(第7版) EX200 EX300】

说明&#xff1a;博文为大家争取福利&#xff0c;与清华大学出版社合作进行送书活动 图书&#xff1a;《RHCSA/RHCE 红帽Linux认证学习指南(第7版) EX200 & EX300》 一、好书推荐 图书介绍 《RHCSA/RHCE 红帽Linux认证学习指南&#xff08;第7版&#xff09; EX200 & E…

亚马逊云科技CEO分享企业内决策流程、领导力原则与重组下的思考

亚马逊云科技首席执行官Adam Selipsky几乎从一开始就在那里&#xff1a;他于2005年加入&#xff0c;在效力亚马逊11年后于2016年离开&#xff0c;转而经营Tableau&#xff0c;并于2021年成为亚马逊云科技首席执行官。当时亚马逊云科技前首席执行官安迪贾西(Andy Jassy)接替杰夫…

从数据孤岛到企业xPA的演化

“数据孤岛”一直以来是企业在信息化进程中面临的比较头疼的问题&#xff0c;由于数据独立存在于不同部门之中&#xff0c;无法进行相互联动&#xff0c;致使数据库无法兼容&#xff0c;这无形中加大了跨部门合作的沟通成本。在此背景下&#xff0c;一种新兴的规划方法——扩展…

知虾shopee数据分析工具:shopee出单的商机利器

当今数字化时代&#xff0c;数据已经成为商业成功的关键要素之一。而Shopee作为东南亚最大的电商平台之一&#xff0c;其强大的数据分析工具正为商家提供了宝贵的市场洞察和决策支持。本文将深入探讨Shopee数据分析工具如何帮助商家抓住商机并取得成功。 洞察消费者需求&#x…

Android网络请求,全方位优雅解析

网络请求的基本流程 网络请求步骤&#xff08;用户输入一个网址到网页最终展现到用户面前&#xff09;大致流程总结如下&#xff1a; 在客户端浏览器中输入网址URL。发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址。客户端浏览器与WEB服务器建立TCP(传输控制协议)连接…

【MySQL】引擎类型

与其他DBMS一样&#xff0c;MySQL有一个 具体管理和处理数据的内部引擎 。在使用create table语句时&#xff0c;该引擎具体创建表&#xff0c;而在使用select或进行其他数据库处理时&#xff0c;该引擎在内部处理你的请求。多数时候&#xff0c;引擎都隐藏在DBMS内&#xff0…

苹果为 Vision Pro 头显申请游戏手柄专利

苹果Vision Pro 推出后&#xff0c;美国专利局公布了两项苹果公司申请的游戏手柄专利&#xff0c;其中一项的专利图如下图所示。据 PatentlyApple 报道&#xff0c;虽然申请专利并不能保证苹果公司会推出游戏手柄&#xff0c;但是苹果公司同时也为游戏手柄申请了商标&#xff0…

【Python-torch】torchio torchvision:transforms API 对比与解析

【Python-torch】torchio & torchvision&#xff1a;transforms API 对比与解析 文章目录 【Python-torch】torchio & torchvision&#xff1a;transforms API 对比与解析0. 前言与对比1. 预处理部分2. 数据增强部分3. 代码示例参考 0. 前言与对比 当处理3d图像数据时…

HDLBits-Verilog学习记录 | Verilog Language-Modules(2)

文章目录 25.Adder 1 | Module add26.Adder 2 | Module fadd27.Carry-select adder28.Adder-subtractor 25.Adder 1 | Module add practice&#xff1a; You are given a module add16 that performs a 16-bit addition. Instantiate two of them to create a 32-bit adder. O…

振动国标2009GB/T 19873.2-2009/ISO 13373-2:2005笔记

国标原文 1.时域&#xff0c;要求&#xff0c;采样率大于最高频率10倍&#xff08;最低频率&#xff1f;&#xff09; 2.频域&#xff0c;要求采样率大于最高频率2倍。 3.3.2 积分和微分&#xff0c;二次积分。 3.3.3 均方根。 3.4 滤波 4.1 奈奎斯特图、极坐标图、坎贝尔…

代码随想录算法训练营第四十九天|LeetCode 647,516,动态规划总结篇

目录 LeetCode 647.回文子串 动态规划五步曲&#xff1a; 1.确定dp[i][j]的含义 2.找出递推公式 3.初始化dp数组 4.确定遍历方向 5.打印dp数组 LeetCode 516.最长回文子序列 动态规划五步曲&#xff1a; 1.确定dp[i][j]的含义 2.找出递推公式 3.初始化dp数组 4.确定遍历方向 …

openssh---Windows下git安装配置gitlab

安装openssh 1. 专业版Win10/11默认自带&#xff0c;可以查看是否开启 1. Get-WindowsCapability -Online | Where-Object Name -like OpenSSH* 2. Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 3. Add-WindowsCapability -Online -Name OpenSSH.Serve…

智慧工地云平台源码:工地管理专家

智慧工地是目前建筑行业的热门话题之一&#xff0c;它代表了未来建筑施工的发展趋势。那么&#xff0c;智慧工地的未来&#xff0c;你看好吗&#xff1f; 从技术角度来看&#xff0c;智慧工地无疑是未来发展的趋势。随着人工智能、大数据、云计算等技术的飞速发展&#xff0c;智…

python+Appium自动化:python多线程多并发启动appium服务

Python启动Appium 服务 使用Dos命令或者bat批处理来手动启动appium服务&#xff0c;启动效率低下。如何将启动Appium服务也实现自动化呢&#xff1f; 这里需要使用subprocess模块&#xff0c;该模块可以创建新的进程&#xff0c;并且连接到进程的输入、输出、错误等管道信息&…

Ubuntu22.04安装使用Docker (参考:完成Dock中的企业微信安装)

Ubuntu22.04安装使用Docker 概述什么是Docker ?Docker 的优点 Docker的安装(1) 安装 Docker 依赖项(2) 启用 Docker 官方存储库(3) 使用 Apt 命令安装 Docker(4) 验证和测试 Docker 安装 Docker Compose1. 使用二进制文件安装 Docker Compose2. 使用 Pip 安装 Docker Compose …

2023年高教社杯 国赛数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模…

LC34. 在排序数组中查找元素的第一个和最后一个位置(JAVA)

二分查找 在排序数组中查找元素的第一个和最后一个位置二分查找 上期经典算法 在排序数组中查找元素的第一个和最后一个位置 难度 - 中等 在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定…

unity中Game视图绘制XYZ坐标轴

Game视图显示XYZ坐标轴 功能一&#xff1a;仅显示XYZ坐标轴前期准备设置箭头模型的材质1、在“Assets”中&#xff0c;新建一个名为“Materials”文件夹&#xff0c;专门用于放置材质。选中“Materials”文件夹&#xff0c;鼠标右键->“创建”->“材质”2、重命名为“Red…