正文
阿里redis笔记,阿里云redis外网访问
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
docker部署并运行Redis
-d后台运行
5554为宿主机端口 123890为访问密码
-i 以交互模式运⾏容器,通常与 -t 同时使⽤;
-t 为容器新分配⼀个伪输⼊终端,通常与 -i
同时使⽤;
坑:记住如果使用阿里的ecs关闭防火墙不起作用远程还是访问不了,要到阿里的控制台把对应ecs实列的安全策略下把端口放开 比如这里要把5554放开
阿里云redis集群数据集中在db0未分散到所有节点问题解决
背景介绍:我们系统使用的缓存服务是付费版的阿里云的redis集群服务,配置是4核,16G。redis的集群结构如下:分为四个节点DB0,DB1,DB2,DB3
之前的存储方案是存储的商品促销数据,结构是:
KEY FIELD VALUE来存储。其中KEY是一个固定的字符串"zy:prom:wx",FIELD则是商品sku,VALUE是商品促销的具体信息。这种方式导致我们存入缓存服务器的数据一直集中在DB0节点上,在访问量过大时,该节点会在短时间内受到到的访问压力很大,DB0的cpu瞬间达到100%以上,造成服务卡顿甚至不可用。而相比之下DB1,DB2,DB3的节点cpu压力却很小,可以忽略不计。这是为什么?最后询问了阿里的技术,他们说我们的数据存储的方法有误,具体是我们的key设置有误。与阿里的技术对话如下:
所以我们后来改造了方案把key的组成变程了"prom:wx:sku",这样key就会根据sku的不同而不同,增大了key的离散度,这样key通过hash算出来的值,就会不同,使得所有的数据不再存放到同一台节点上,完美解决问题。
修改后的存储分布情况如下图:DB0、DB1、DB2、DB3四个节点数据均匀分布。
对修改前后两天同一时间区间的缓存服务器的cpu压力情况对比:
增删改查哪个最重要
关于JavaWeb增删改查的简单总结 原创
2020-04-25 13:14:49
走到天涯海角
码龄4年
关注
增删改查中最简单的功能是删除,通过Id来删除单表或者多表都是可以的。
增删改查中最重要的功能是查询,因为不仅仅是单表查询、连表查询需要用到查询,新增前和修改前也要使用到查询。
查询遇到的业务比如:
1.登录:通过查询用户名和密码来找出用户,密码可以重复,但是用户名必须唯一,否则没办法找出单个用户。
(重要) 只要查询的字段是唯一的,都可以通过这个字段来查询出对应的单个对象或者集合。
什么字段是唯一的呢?
如:用户名必须唯一,文件名必须唯一,主键ID必须唯一等等,一时半会想不起来。
新增前,通过查询获得如:下拉框中的数据等
在新增时,通过获取下拉框的值或者输入框的值,就可以保存新增。
新增也会遇到循环插入的情况,如新增角色和修改角色,要循环插入数据到角色菜单关系表中。
循环插入数据的做法,我是用过两种方法,一种方法是使用c3p0,另一种是使用mybatis的foreach标签
修改前,通过查询,获得如:用户的信息,然后放到修改输入框,提高用户的使用体验。
修改时,通过隐藏区的Id,和输入框或者下拉框中的值,来进行保存修改。
文章知识点与官方知识档案匹配
Java技能树首页概览
92024 人正在系统学习中
打开CSDN APP,看更多技术内容
JavaWeb实现简单对数据库的增删改查_向晚而生的博客_web实现数...
数据库:MySQL 连接池:Druid连接池 Github仓库地址:点我 jar包下载:点我!提取码:y4ef 参考:Javaweb实现增删改查操作操作 用JavaWeb部分知识实现对数据库的增删改查 只展示Student和Teacher的相关代码 一、效果图 二、数据库实现 1. ...
继续访问
Web对数据库的增删改查(servlet+jsp+javaBean增删改查)
1.开始之前的准备(servlet+jsp+javaBean增删改查) jsp:页面的请求和展示 在前台主要学了jsp进行页面的请求和展示 java后台 mysql数据库 学习了java如何进行数据库增删改查 JDBC重构Dao Dao进行sql语句 将数据库的获取结果响应到页面上 ...
继续访问
最新发布 javaweb极简登录注册增删改查
javaweb极简登录注册增删改查
继续访问
简单的JavaWeb项目,基本的增删改查和分页查询等功能。
简单的JavaWeb项目,刘意老师整理,拥有登录,添加,删除,修改,分页查询,删除选中,复杂分页查询功能。
JavaWeb阶段案例--简易版管理图书系统(增删改查)
超详细JavaWeb阶段项目 --图书管理系统 -- 连接数据库在网页上实现图书的增删改查
继续访问
笔记--MySQL相关操作
一 登录数据库 1 用户无密码: mysql -uroot -p mysql- 2 用户有密码: MySQL -root -p[passwd] mysql- 二 创建数据库: 查询: mysql show databases; +--------------------+ | Database ...
继续访问
Javaweb--通过网页实现对数据库的增删查改
文章目录Javaweb--通过网页实现对数据库的增删查改1、功能需求2、技术选型2、最终效果图3、数据库准备4、前端开发5、后端开发 Javaweb–通过网页实现对数据库的增删查改 通常在写一些后台管理系统的时候,一定会有关于数据表格的增删查改的功能实现。最近也是闲来无事,做了这个小案例,希望能帮到有写这方面需求的朋友们。 1、功能需求 这次以单个的员工数据表为例,实现以下功能需求: 1、能够正常从数据库中读取相应数据。 2、设置分页,能够通过点击页码,进行数据更新,同时支持输入页码更新数据
继续访问
让我们在网页中实现数据库的增删改查~
目录主要思路首先让我们链接自己的数据库 index.js对数据库设定一些用户规则 user.js做一个添加数据的静态网页 add.html做一个主页面 list.html最最最主要的js代码自我激励 主要思路 搭建网站服务器,实现客户端与服务器端的通信 连接数据库, 创建用户集合, 向集合中插入文档 当用户访问 /list时,将所有用户信息查询出来 1.实现路由功能 1.呈现用户列表页面 1. 再点击修改按钮的时 将用户ID传递到当前页面 2. 从数据库中查询当前用户信息 将用户信息展示到页面中 2.从数据
继续访问
JavaWeb 增删改查快速开发总结
JavaWeb增删改查基本都是那一套,其中最繁琐 变动的便是围绕SQL语句、Servlet来展开,下面是我对这些左到一个小总结,希望能对您有所帮助首先项目搭建好之后就是最关键的SQL语句 Servlet代码 Servlet方法 然后是前端methods()方法 删除和批量删除(这里用element做了个删除提示)...
继续访问
Java web阶段学习总结(华清远见)
经过web前端的学习之后,我们开启了Java web后端的学习。学习一样新的东西首先要了解它的原理,以及所要具备的一些条件。对于Servlet 的开发步骤一般有:新建一个Java web项目工程 -- 创建servlet类继承Http Servlet,重写service方法 -- 在web.xml中做地址映射 -- 打包 -- 部署 -- 启动容器。这样就可以在浏览器中访问web程序。了解步骤之后就可以动手敲了。
继续访问
javaWeb反思与总结
javaWeb的回顾总结
继续访问
javaweb mysql增删改查_超详细的JavaWeb用户的增删改查实现总结
前言本文是基于单体架构实现的角色的增删改查的功能。前台使用Bootstrap+Ajax+Jsp , 后端使用Spring+SpringMvc+MyBatis进行开发,相信使用过这些技术的小伙伴应该很好的理解以下的内容,也希望看了这篇文章小伙伴们有所收获。准备工作后端技术技术说明官网SpringSpring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。SpringMvcMVC框架ht...
继续访问
Javaee增删改查学习心得
这是我学习完Javaee增删改查后的一些经验心得,在这里记录加深一下印象。 1、创建一个web项目,在左侧项目区域右键创建新的web项目,如果没找到选择最下方other,搜索dy,点击创建web项目。 2、导入相应的jar包,oracle数据库导入oracle的jdbc连接jar包,mysql数据库导入mysql的jdbc连接jar包。在lib文件夹下导入。如需j导入s或css的jar包则最好新建...
继续访问
MySQL学习笔记(一) 下载安装+基本增删改查 + 事务
mysql笔记,内容包含下载安装,DDL,DML,DQL,DCL语法,约束,多表查询等
继续访问
简易的JavaWeb实现增删查改(附数据库)
一、概述 时隔一年,重回博客,应许多初学的同学要求,实现简单的增删查改功能的小程序,具体请详看下面的截图~~~ 二、开发环境 语言:JavaWeb、JSP、CSS 数据库:MySQL 开发工具:Eclipse 三、部分截图展示 四、代码片段 @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExceptio...
继续访问
PHP网页设计实现增删改查,包含报告实训内容
运用PHP技术和MySQL数据库实现对一个数据库表格的操作。 实验环境 1.DreamweaverCS6软件2.phpStudy2018软件(包含Web服务器Apache、数据库服务器MySQL、PHP语言引擎) 实验内容安排 1.选择学习或生活环境中的一个数据表格并构造符合SQL格式的初始数据2.通过浏览器对这个数据表格进行查找、显示、修改、增添、删除5项操作...
继续访问
增删查改
增删查改 增删查改在所有的语言代码中都是最基础和重要的,增删查改在代码中担任着不可缺少的一部分,整个代码项目都是靠着增删查改。“增删查改”就如同字面意思一样,增:新增(insert),删:删除(delete),查:查询(select),改:修改(update),代码做出来的东西大部分都是靠着“增删查改”来运行的! 先说的就是增:新增(insert),最简单的意思就是用原来的数据来新增一条或多条新的数据,这就是新增。首先要有一个写一个模态框才能在模...
继续访问
JavaWeb实现简单对数据库的增删改查
通过JavaWeb实现简单的对数据库的增删改查
继续访问
热门推荐 java web基本增删改查操作
这是一个结合mysql数据库,java后端和jsp页面的综合案例: 声明:学习本文时,需要有一定的基础,例如jsp,jquery,servlet,Java,jdbc等基础,如果不懂的希望从基础学起,加油! 在代码中有对应的注释说明,所以我就直接上代码了 大致流程是: 首先访问到servlet层,在servlet层里调用StudentRepository的各个方法,然后展示到jsp页面中。所以浏览器访问路径是servlet层里StudentServlet中@WebServlet("/student")的路径(
继续访问
关于Javaweb课程设计的心得体会.docx
关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx
记录一下springboot+mybatis实现增删改查的基本流程和心得
记录一下springboot+mybatis实现增删改查的基本流程和心得 springboot是一个spring家族中举足轻重的那一个,也是在javaweb实际开发过程经常使用到的一个框架,熟练使用springboot是在实际工作中非常重要的。(在一开始中我认为要先学会如何使用,而不是深究底层原理和代码,毕竟一般的java开发工作中只会项目经理只会不停给你分配增删改查的功能任务,当然,随着开发经验的不断提升,只止步于增删改查会很难得到工作地位提升的机会) 第一步:导入pom.xml依赖 !--spr
继续访问
java的开发环境和运行环境,年薪60W必备
四面阿里 面试岗位是研发工程师,直接找蚂蚁金服的大佬进行内推,参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头offer。 一面: 自我介绍 项目中做了什么,难点呢。 Java的线程池说一下,各个参数的作用,如何进行的。 Redis讲一下 分布式系统的全局id如何实现。用zookeeper如何实现的呢,机器号+时间戳即可。 分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好。 kafka了解么,了解哪些消息队列。 想做业务还是研究。 然后出了
继续访问
web增删改查数据库实验总结
java
写评论
有介绍redis dubbo nocas的书籍推荐
推荐的关于redis、dubbo、nocas的书:
1.Redis设计与实现:Redis技术专家撰写,深入了解Redis技术内幕的之作。从源码角度解析Redis的架构设计、实现原理和工作机制,为高效使用 Redis 提供原理性指导;
2.深入理解Apache Dubbo与实战:主要侧重于详细解读Dubbo框架工作原理和底层机制,并结合少量核心源码进行讲解。在原理的基础上,展示一些动手扩展Dubbo特性的实战场;
3.Nacos架构原理:Nacos 开源之前在阿里内部已经发展了十年,沉淀了很多优秀的能力,如其易用性、稳定性、实时性以及大规模的特性;也有很多历史负担,在开源的时候我们取其精华进行开源,为了提升代码的健壮性和扩展性,进行了充分的分层和模块化设计。
redis是分布式的吗
是的
日常开发中,总会接触到一些好玩的东西,比如这篇的redis,一说到redis,可能就有人跟memcache做比较了,是呀,
memcache只能说是简单的kv内存数据结构,而redis支持的数据类型就丰富多了,当然最能让人看上眼的就是SortedSet。
有了它,我们就可以玩一些“贪心”的问题,比如适合“贪心”的优先队列,说到优先队列,我们以前实现了仅仅是内存形式的,
哎,内存毕竟是内存,当有海量数据的时候,最好能有一个序列化到硬盘的操作。。。恰恰这个场景redis就可以办到。。。
一:快速搭建
好了,我们知道redis比较适合做的事情了,现在我们可以进行快速搭建。
第一步:下载redis-2.0.2.zip (32 bit)。然后改名为redis放在D盘中。
最重要的也就是下面两个:
redis-server.exe: 这个就是redis的服务端程序。
redis-cli.exe: 服务端开启后,我们的客户端就可以输入各种命令测试了。
从图中我们可以看到两点:
①:没有指定config file。
原来redis建议我们做一个配置文件,那我就搞段配置。
daemonize: 是否以“守护进程”的方式开启,当是守护进程的时候就不受控制台的影响了。
logfile: log文件位置。
database: 开启数据库的个数。
dbfilename: 数据快照文件名。
save * *: 保存快照的频率,第一个为时间,第二个为写操作。
将这些配置好后,我们再看看:
②:我们看到redis默认的开放端口为6379。
二:安装驱动
好了,redis已经搭建完毕了,现在我们就要用C#去操作redis,这也是我最渴望的功能,优先队列~,先下载C#驱动,
就可以看到如下3个dll。
最后我们做下小测试:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 var client = new RedisClient("127.0.0.1", 6379); 6 7 //最后一个参数为我们排序的依据 8 var s = client.AddItemToSortedSet("12", "百度", 400); 9 10 client.AddItemToSortedSet("12", "谷歌", 300);11 client.AddItemToSortedSet("12", "阿里", 200);12 client.AddItemToSortedSet("12", "新浪", 100);13 client.AddItemToSortedSet("12", "人人", 500);14 15 //升序获取最一个值:"新浪"16 var list = client.GetRangeFromSortedSet("12", 0, 0);17 18 foreach (var item in list)19 {20 Console.WriteLine(item);21 }22 23 //降序获取最一个值:"人人"24 list = client.GetRangeFromSortedSetDesc("12", 0, 0);25 26 foreach (var item in list)27 {28 Console.WriteLine(item);29 }30 31 Console.Read();32 }33 }
AddItemToSortedSet: 第三个参数也就是我们要排序的依据,这也非常适合我们做topK的问题,非常爽~
Redis分布式缓存搭建
花了两天时间整理了之前记录的Redis单体与哨兵模式的搭建与使用,又补齐了集群模式的使用和搭建经验,并对集群的一些个原理做了理解。
笔者安装中遇到的一些问题:
如果make报错,可能是没装gcc或者gcc++编辑器,安装之 yum -y install gcc gcc-c++ kernel-devel ,有可能还是提示一些个c文件编译不过,gcc -v查看下版本,如果不到5.3那么升级一下gcc:
在 /etc/profile 追加一行 source /opt/rh/devtoolset-9/enable
scl enable devtoolset-9 bash
重新make clean, make
这回编译通过了,提示让你最好make test一下/
执行make test ,如果提示 You need tcl 8.5 or newer in order to run the Redis test
那就升级tcl, yum install tcl
重新make test,如果还有error就删了目录,重新tar包解压重新make , make test
\o/ All tests passed without errors! ,表示编译成功。
然后make install即可。
直接运行命令: ./redis-server /usr/redis-6.0.3/redis.conf
redis.conf 配置文件里 bind 0.0.0.0 设置外部访问, requirepass xxxx 设置密码。
redis高可用方案有两种:
常用搭建方案为1主1从或1主2从+3哨兵监控主节点, 以及3主3从6节点集群。
(1)sentinel哨兵
/usr/redis-6.0.3/src/redis-sentinel /usr/redis-6.0.3/sentinel2.conf
sentinel2.conf配置:
坑1:master节点也会在故障转移后成为从节点,也需要配置masterauth
当kill master进程之后,经过sentinel选举,slave成为了新的master,再次启动原master,提示如下错误:
原因是此时的master再次启动已经是slave了,需要向现在的新master输入密码,所以需要在master.conf
中配置:
坑2:哨兵配置文件要暴露客户端可以访问到的master地址
在 sentinel.conf 配置文件的 sentinel monitor mymaster 122.xx.xxx.xxx 6379 2 中,配置该哨兵对应的master名字、master地址和端口,以及达到多少个哨兵选举通过认为master挂掉。其中master地址要站在redis访问者(也就是客户端)的角度、配置访问者能访问的地址,例如sentinel与master在一台服务器(122.xx.xxx.xxx)上,那么相对sentinel其master在本机也就是127.0.0.1上,这样 sentinel monitor mymaster 127.0.0.1 6379 2 逻辑上没有问题,但是如果另外服务器上的springboot通过lettuce访问这个redis哨兵,则得到的master地址为127.0.0.1,也就是springboot所在服务器本机,这显然就有问题了。
附springboot2.1 redis哨兵配置:
坑3:要注意配置文件.conf会被哨兵修改
redis-cli -h localhost -p 26379 ,可以登到sentinel上用info命令查看一下哨兵的信息。
曾经遇到过这样一个问题,大致的信息如下
slaves莫名其妙多了一个,master的地址也明明改了真实对外的地址,这里又变成127.0.0.1 !
最后,把5个redis进程都停掉,逐个检查配置文件,发现redis的配置文件在主从哨兵模式会被修改,master的配置文件最后边莫名其妙多了一行replicaof 127.0.0.1 7001, 怀疑应该是之前配置错误的时候(见坑2)被哨兵动态加上去的! 总之,实践中一定要多注意配置文件的变化。
(2)集群
当数据量大到一定程度,比如几十上百G,哨兵模式不够用了需要做水平拆分,早些年是使用codis,twemproxy这些第三方中间件来做分片的,即 客户端 - 中间件 - Redis server 这样的模式,中间件使用一致性Hash算法来确定key在哪个分片上。后来Redis官方提供了方案,大家就都采用官方的Redis Cluster方案了。
Redis Cluster从逻辑上分16384个hash slot,分片算法是 CRC16(key) mod 16384 得到key应该对应哪个slot,据此判断这个slot属于哪个节点。
每个节点可以设置1或多个从节点,常用的是3主节点3从节点的方案。
reshard,重新分片,可以指定从哪几个节点移动一些hash槽到另一个节点去。重新分片的过程对客户端透明,不影响线上业务。
搭建Redis cluster
redis.conf文件关键的几个配置:
启动6个集群节点
[root@VM_0_11_centos redis-6.0.3]# ps -ef|grep redis
root 5508 1 0 21:25 ? 00:00:00 /usr/redis-6.0.3/src/redis-server 0.0.0.0:7001 [cluster]
root 6903 1 0 21:32 ? 00:00:00 /usr/redis-6.0.3/src/redis-server 0.0.0.0:7002 [cluster]
root 6939 1 0 21:33 ? 00:00:00 /usr/redis-6.0.3/src/redis-server 0.0.0.0:7003 [cluster]
root 6966 1 0 21:33 ? 00:00:00 /usr/redis-6.0.3/src/redis-server 0.0.0.0:7004 [cluster]
root 6993 1 0 21:33 ? 00:00:00 /usr/redis-6.0.3/src/redis-server 0.0.0.0:7005 [cluster]
root 7015 1 0 21:33 ? 00:00:00 /usr/redis-6.0.3/src/redis-server 0.0.0.0:7006 [cluster]
这时候这6个节点还是独立的,要把他们配置成集群:
说明: -a xxxx 是因为笔者在redis.conf中配置了requirepass xxxx密码,然后 --cluster-replicas 1 中的1表示每个master节点有1个从节点。
上述命令执行完以后会有一个询问: Can I set the above configuration? yes同意自动做好的分片即可。
最后 All 16384 slots covered. 表示集群中16384个slot中的每一个都有至少有1个master节点在处理,集群启动成功。
查看集群状态:
坑1:暴露给客户端的节点地址不对
使用lettuce连接发现连不上,查看日志 Connection refused: no further information: /127.0.0.1:7002 ,跟之前哨兵配置文件sentinel.conf里边配置master地址犯的错误一样,集群启动的时候带的地址应该是提供给客户端访问的地址。
我们要重建集群:先把6个redis进程停掉,然后删除 nodes-7001.conf 这些节点配置文件,删除持久化文件 dump.rdb 、 appendonly.aof ,重新启动6个进程,在重新建立集群:
然后,还是连不上,这次报错 connection timed out: /172.xx.0.xx:7004 ,发现连到企鹅云服务器的内网地址上了!
解决办法,修改每个节点的redis.conf配置文件,找到如下说明:
所以增加配置:
然后再重新构建集群,停进程、改配置、删除节点文件和持久化文件、启动进程、配置集群。。。再来一套(累死了)
重新使用Lettuce测试,这次终于连上了!
坑2:Lettuce客户端在master节点故障时没有自动切换到从节点
name这个key在7002上,kill这个进程模拟master下线,然后Lettuce一直重连。我们期望的是应该能自动切换到其slave 7006上去,如下图:
重新启动7002进程,
7006已成为新master,7002成为它的slave,然后Lettuce也能连接上了。
解决办法,修改Lettuce的配置:
笔者用的是springboot 2.1 spring-boot-starter-data-redis 默认的Lettuce客户端,当使用Redis cluster集群模式时,需要配置一下 RedisConnectionFactory 开启自适应刷新来做故障转移时的自动切换从节点进行连接。
重新测试:停掉master 7006,这次Lettuce可以正常切换连到7002slave上去了。(仍然会不断的在日志里报连接错误,因为需要一直尝试重连7006,但因为有7002从节点顶上了、所以应用是可以正常使用的)
Redis不保证数据的强一致性
Redis并不保证数据的强一致性,也就是取CAP定理中的AP
关于一致性Hash算法,可以参考 一致性Hash算法 - (jianshu.com)
Redis cluster使用的是hash slot算法,跟一致性Hash算法不太一样,固定16384个hash槽,然后计算key落在哪个slot里边(计算key的CRC16值再对16384取模),key找的是slot而不是节点,而slot与节点的对应关系可以通过reshard改变并通过gossip协议扩散到集群中的每一个节点、进而可以为客户端获知,这样key的节点寻址就跟具体的节点个数没关系了。也同样解决了普通hash取模算法当节点个数发生变化时,大量key对应的寻址都发生改动导致缓存失效的问题。
比如集群增加了1个节点,这时候如果不做任何操作,那么新增加的这个节点上是没有slot的,所有slot都在原来的节点上且对应关系不变、所以没有因为节点个数变动而缓存失效,当reshard一部分slot到新节点后,客户端获取到新迁移的这部分slot与新节点的对应关系、寻址到新节点,而没迁移的slot仍然寻址到原来的节点。
关于热迁移,猜想,内部应该是先做复制迁移,等迁移完了,再切换slot与节点的对应关系,复制没有完成之前仍按照原来的slot与节点对应关系去原节点访问。复制结束之后,再删除原节点上已经迁移的slot所对应的key。
与哨兵模式比较类似,当1个节点发现某个master节点故障了、会对这个故障节点进行pfail主观宕机,然后会通过gossip协议通知到集群中的其他节点、其他节点也执行判断pfail并gossip扩散广播这一过程,当超过半数节点pfail时那么故障节点就是fail客观宕机。接下来所有的master节点会在故障节点的从节点中选出一个新的主节点,此时所有的master节点中超过半数的都投票选举了故障节点的某个从节点,那么这个从节点当选新的master节点。
所有节点都持有元数据,节点之间通过gossip这种二进制协议进行通信、发送自己的元数据信息给其他节点、故障检测、集群配置更新、故障转移授权等等。
这种去中心化的分布式节点之间内部协调,包括故障识别、故障转移、选主等等,核心在于gossip扩散协议,能够支撑这样的广播协议在于所有的节点都持有一份完整的集群元数据,即所有的节点都知悉当前集群全局的情况。
Redis高可用方案 - (jianshu.com)
面试题:Redis 集群模式的工作原理能说一下么 - 云+社区 - 腾讯云 (tencent.com)
深度图解Redis Cluster原理 - detectiveHLH - 博客园 (cnblogs.com)
Redis学习笔记之集群重启和遇到的坑-阿里云开发者社区 (aliyun.com)
云服务器Redis集群部署及客户端通过公网IP连接问题
阿里redis笔记的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于阿里云redis外网访问、阿里redis笔记的信息别忘了在本站进行查找喔。