Redis6之集群

news2024/11/16 13:28:33

集群,就是通过增加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态

必要性

        单个redis存在不稳定性。当redis服务宕机了,就没有可用的服务了。而且单个redis的读写能力是有限的。使用redis集群可以强化redis的读写能力,并且当一台服务器宕机了,其他服务器还能正常工作,不影响使用

名词

      redis集群中,每一个redis称之为一个节点,集群无中心节点。  

      redis集群中,有两种类型的节点:主节点(master)、从节点(slave),多个主节点,每一个主节点都可读可写

      redis集群,是基于redis主从复制实现

      节点之间会互相通信,两两相连

好处

        服务器的容量不足或者进行并发写操作的用户过多等情况下可以使用多台Redis集群的方式缓解压力

特点

        集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N

        集群通过分区来提供一定程度的可用性: 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求

集群环境搭建

        1.复制5个redis出来,作为3主3从,端口可以自定义

        2.修改配置:redis.conf

port 7100 # 本示例6个节点端口分别为7100,7200,7300,7400,7500,7600   
daemonize yes # r后台运行   
pidfile /var/run/redis_7100.pid # pidfile文件对应7100,7200,7300,7400,7500,7600   
cluster-enabled yes # 开启集群模式   
masterauth passw0rd # 如果设置了密码,需要指定master密码  
cluster-config-file nodes_7100.conf # 集群的配置文件,同样对应7100,7200等六个节点  
cluster-node-timeout 15000 # 请求超时 默认15秒,可自行设置 

       3.分别以端口7100,7200,7300,7400,7500,7600 启动六个实例(如果是每个服务器一个实例则配置可一样) 

[root@dev-server-1 cluster]# redis-server redis_7100.conf  
[root@dev-server-1 cluster]# redis-server redis_7200.conf  

        4.然后通过命令将这个6个实例组成一个3主节点3从节点的集群

redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7100 127.0.0.1:7200 127.0.0.1:7300 127.0.0.1:7400 127.0.0.1:7500 127.0.0.1:7600 -a passw0rd 

优缺点

优点:

        1、无中心架构,节点间数据共享,可动态调整数据分布;
        2、节点可动态添加删除,扩张性比较灵活;
        3、部分节点异常,不影响整体集群的可用性;

缺点:

        1、集群实现比较复杂;
        2、批量操作指令(mget、mset等)支持有限;
        3、事务操作支持有限

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

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

相关文章

PIL.Image 调色板模式处理标签数据

文章目录 1 使用PIL.Image库进行调色板模式2 转回原来的色彩3 效果参考 1 使用PIL.Image库进行调色板模式 基本步骤: 自定义调色板,数据格式是一个Nx3的二维数组,一维数组的位置为分类的下标数据类型为np.uint8转化为调色板模式后img.conve…

想知道音频怎么转文字吗?

随着数字化技术的不断发展,我们生活中产生的各种音频越来越多,例如会议录音、采访录音等等。虽然音频记录信息方便,但它们在信息处理、存储和分享方面也存在问题。比如当我们需要对音频中的内容进行编辑或整理时,手动打字出现漏字…

Eclipse中项目的配置

1、修改本地运行时Tomcat对应的JRE版本 老项目升级JDK,在eclipse修改了项目的jdk、编译等级,但还是启动失败,报“java.lang.UnsupportedClassVersionError”。 观察发现,启动日志,tomcat还是使用的jdk1.5,…

编程题分享:有⼀堆糖果,其数量为n,现将糖果分成不同数量的堆数

背景 近期面试遇到一家公司的编程题,觉得挺有参考价值 此处使用 PHP语言,进行编码测试, 编码之前要进行思路分析,避免无头苍蝇,走一步看一步 最后,希望后期面试顺利!欢迎指摘 . 题目&#xff1…

形态学操作之膨胀

note // 膨胀原理:操作过程中,若膨胀因子某点是1,且原图该点为1,则锚点位置为1 code // 膨胀 // 膨胀原理:操作过程中,若膨胀因子某点是1,且原图该点为1,则锚点位置为1 typedef e…

gma 2 教程(一)概述:1.GMA 简介

地理与气象分析库(Geographic and Meteorological Analysis. gma),是一个基于 Python 的地理、气象数据快速处理分析和地理制图函数包。构建过程参考了ArcGIS和QGIS的操作逻辑和特点,并添加诸多独创性、独有的功能,具有…

QT Creator上位机学习(三)QString及其相关控件介绍

系列文章目录 文章目录 系列文章目录字符串QStringQLableQLineEditQString的常用功能 字符串QString QSting类,用于处理字符串,进行字符串和数字之间的转化 转换函数: //字符串转数字 QString str......; int numstr.toInt(); float num2s…

微信项目IO优化:Jetpack DataStore 与MMKV实现高效持久化

咱们一起来看看mmkv 腾讯微信团队于2018年9月底宣布开源 MMKV ,原理上基于 mmap的一个高性能key-value 组件,数据的序列化/反序列化使用 protobuf 实现,主打高性能和稳定性,也支持了Android 平台。 **MMKV最新源码托管地址&#…

Mybatis【核心配置文件说明】

配置解析 1、核心配置文件 mybatis-config.xml 注意: 在配置 mybatis-config.xml 时,要注意标签的顺序: 2、环境变量(environments) MyBatis 可以配置成适应多种环境 不过要记住:尽管可以配置多个环境…

现代操作系统(下)

第六章 死锁 在计算机系统中有很多独占性的资源,在任一时刻它们都只能被一个进程使用。两个进程同时使用同一文件系统表中的表项会引起文件系统的瘫痪。正因为如此,操作系统都具有授权一个进程(临时)排他地访问某一种资源的能力。…

【AcWing】夏季每日一题2023 -- 4382. 快速打字 -- Java Version

题目链接:https://www.acwing.com/problem/content/4385/ 1. 题解(4382. 快速打字) y总视频讲解:https://www.acwing.com/video/4743/ 类似题目:AcWing 2816. 判断子序列 1.1 双指针:判断子序列 ⭐ 时间复…

一文吃透MAUI、WinUI3和WPF的优势及劣势

引言: 在应用程序开发领域,选择合适的框架对于开发人员和业务来说至关重要。本文将比较并对比三个流行的用户界面框架:MAUI(Multi-platform App UI)、WinUI 3和WPF(Windows Presentation Foundation&#x…

element ui table表格(表头、表体)样式

效果图如下 1.表头样式:header-cell-stayle 2.表体样式 在methods中写 在style中

使用Qt/C++实现WGS84、高德GCJ-02、百度BD-09坐标系间相互转化

在做地图相关开发时候,绕不开不同坐标系间的转化,因此我根据查阅相关资料后将不同坐标系间的转换封装到一个GeoTranslate类中,该类转换函数不仅支持Qt/C调用,同时可在QML中直接调用,配合上QML/Map很方便,我…

大咖培训讲座|高性能计算专场 认识真正的高性能计算,探究如何成为高性能计算工程师 ...

猿代码科技高性能计算讲座原文——OpenBLAS创始人无保留分享 我们如何成为一个高性能计算的工程师,或者这种性能优化的这一部分的软件工程师。 我其实想了一下,这一部分的入门的基础其实没那么难。 就是更主要的话,我还是在于兴趣和自驱力…

idea自定义类注释以及方法注释,无警告

背景 idea:IntelliJ IDEA 2023.1.3 (Ultimate Edition) 效果 类 方法 正式:类 设置 代码 /** * author: 你的名字* date: ${DATE} on ${TIME}* desc: $NAME*/注意,请全部复制,空行也要,看设置截图选中部分 …

Jenkins定时执行JMeter脚本并查看测试报告实现

【整体思路】 通过Tomcat启动Jenkins服务,在Jenkins中创建自动化测试项目,项目配置中配置构建时执行的动作,配置构建后动作展示报告 【涉及软件及版本信息】 Tomcat版本:9.0.76 Jenkins版本:2.332.3(注…

ES批量上传数据 - Python操作ES

代码 # -*- coding: utf-8 -*- # Author : markadcimport randomfrom elasticsearch import Elasticsearch, helpersurl http://localhost:9200/ client Elasticsearch(url) index testsome [] for i in range(1, 10001):docu {uid: i, age: random.randint(1, 100)} …

ChatGPT中的Token:了解聊天模型的基本单位

✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区 📙 专栏地址:AI大模型 ChatGPT中的Token是什么? 在ChatGPT…

23-BOM和常见的BOM对象

一、是什么 BOM (Browser Object Model),浏览器对象模型,提供了独立于内容与浏览器窗口进行交互的对象 作用:跟浏览器做一些交互效果, 如何进行页面的后退,前进,刷新,浏览器的窗口发生变化&am…