redis cluster集群搭建
集群搭建
启动6个redis实例
创建6份配置文件
mkdir redis-cluster
cd redis-cluster
mkdir 7001 7002 7003 8001 8002 8003
7001文件夹创建配置文件redis.conf
port 7001
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes
然后copy到其他文件夹,记得改端口号,还有cluster-config-file的值,这个值不能重,必须唯一,否则无法启动
➜ redis git:(unstable) ✗ tree redis-cluster
redis-cluster
├── 7001
│ └── redis.conf
├── 7002
│ └── redis.conf
├── 7003
│ └── redis.conf
├── 8001
│ └── redis.conf
├── 8002
│ └── redis.conf
└── 8003└── redis.conf7 directories, 6 files
启动6个独立的redis实例
nohup ./src/redis-server ./redis-cluster/7001/redis.conf &
nohup ./src/redis-server ./redis-cluster/7002/redis.conf &
nohup ./src/redis-server ./redis-cluster/7003/redis.conf &
nohup ./src/redis-server ./redis-cluster/8001/redis.conf &
nohup ./src/redis-server ./redis-cluster/8002/redis.conf &
nohup ./src/redis-server ./redis-cluster/8003/redis.conf &
确认是否全部启动成功
➜ redis git:(unstable) ✗ ps -ef |grep redis502 54910 84839 0 4:04下午 ttys007 0:01.25 ./redis-server *:7001 [cluster]502 63857 84839 0 4:17下午 ttys007 0:00.13 ./src/redis-server *:7002 [cluster]502 64177 84839 0 4:18下午 ttys007 0:00.08 ./src/redis-server *:7003 [cluster]502 64551 84839 0 4:18下午 ttys007 0:00.06 ./src/redis-server *:8001 [cluster]502 64651 84839 0 4:18下午 ttys007 0:00.04 ./src/redis-server *:8002 [cluster]502 64721 84839 0 4:18下午 ttys007 0:00.04 ./src/redis-server *:8003 [cluster]
启动redis cluster
–cluster-replicas 1表示每个master一个slave
➜ redis git:(unstable) ✗ ./src/redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 \
127.0.0.1:7003 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 \
--cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 127.0.0.1:8002 to 127.0.0.1:7001
Adding replica 127.0.0.1:8003 to 127.0.0.1:7002
Adding replica 127.0.0.1:8001 to 127.0.0.1:7003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: da719074003da0628451b51ea31b3dc33531df9d 127.0.0.1:7001slots:[0-5460] (5461 slots) master
M: 031ebc9d3abd215ae467d1e9ec801a1664e2aeca 127.0.0.1:7002slots:[5461-10922] (5462 slots) master
M: e92d35f68da0727360113754dca6000de8fb19bb 127.0.0.1:7003slots:[10923-16383] (5461 slots) master
S: a1b535c7207cfcf3556917a663020d1ad588e086 127.0.0.1:8001replicates e92d35f68da0727360113754dca6000de8fb19bb
S: fc3b476515919bc2d26651a3589098f6f7b2862c 127.0.0.1:8002replicates da719074003da0628451b51ea31b3dc33531df9d
S: b69892d37edd69069a0ba39a97adc3818e4d45a6 127.0.0.1:8003replicates 031ebc9d3abd215ae467d1e9ec801a1664e2aeca
Can I set the above configuration? (type 'yes' to accept): yes
测试集群的读写
src git:(unstable) ✗ ./redis-cli -c -p 7001
127.0.0.1:7001> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7003
OK
127.0.0.1:7003> get foo
"bar"
127.0.0.1:7003> set hello world
-> Redirected to slot [866] located at 127.0.0.1:7001
OK
127.0.0.1:7001> get foo
-> Redirected to slot [12182] located at 127.0.0.1:7003
"bar"
127.0.0.1:7003> get hello
-> Redirected to slot [866] located at 127.0.0.1:7001
"world"
测试failover功能
先停掉一个master 7001
src git:(unstable) ✗ ps -ef |grep redis502 77572 34733 0 4:38下午 ttys005 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox redis502 54910 84839 0 4:04下午 ttys007 0:03.01 ./redis-server *:7001 [cluster]502 63857 84839 0 4:17下午 ttys007 0:01.92 ./src/redis-server *:7002 [cluster]502 64177 84839 0 4:18下午 ttys007 0:01.86 ./src/redis-server *:7003 [cluster]502 64551 84839 0 4:18下午 ttys007 0:01.75 ./src/redis-server *:8001 [cluster]502 64651 84839 0 4:18下午 ttys007 0:01.83 ./src/redis-server *:8002 [cluster]502 64721 84839 0 4:18下午 ttys007 0:01.86 ./src/redis-server *:8003 [cluster]
➜ src git:(unstable) ✗ kill -9 54910
观察节点信息
➜ src git:(unstable) ✗ ./redis-cli -c -p 7002
127.0.0.1:7002> set lvsheng a
-> Redirected to slot [694] located at 127.0.0.1:8002
127.0.0.1:8002> cluster nodes
031ebc9d3abd215ae467d1e9ec801a1664e2aeca 127.0.0.1:7002@17002 master - 0 1694077364000 2 connected 5461-10922
a1b535c7207cfcf3556917a663020d1ad588e086 127.0.0.1:8001@18001 slave e92d35f68da0727360113754dca6000de8fb19bb 0 1694077364649 3 connected
b69892d37edd69069a0ba39a97adc3818e4d45a6 127.0.0.1:8003@18003 slave 031ebc9d3abd215ae467d1e9ec801a1664e2aeca 0 1694077364548 2 connected
fc3b476515919bc2d26651a3589098f6f7b2862c 127.0.0.1:8002@18002 myself,master - 0 1694077364000 7 connected 0-5460
da719074003da0628451b51ea31b3dc33531df9d 127.0.0.1:7001@17001 master,fail - 1694075900491 1694075898000 1 disconnected
e92d35f68da0727360113754dca6000de8fb19bb 127.0.0.1:7003@17003 master - 0 1694077364000 3 connected 10923-16383
127.0.0.1:8002> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:7
cluster_my_epoch:7
cluster_stats_messages_ping_sent:4100
cluster_stats_messages_pong_sent:4129
cluster_stats_messages_meet_sent:1
cluster_stats_messages_fail_sent:5
cluster_stats_messages_auth-req_sent:5
cluster_stats_messages_sent:8240
cluster_stats_messages_ping_received:4125
cluster_stats_messages_pong_received:4100
cluster_stats_messages_auth-ack_received:2
cluster_stats_messages_received:8227
total_cluster_links_buffer_limit_exceeded:0
依然是3个主节点,但是7001已经失联,8002从slave变成了master。
相关文章:
redis cluster集群搭建
集群搭建 启动6个redis实例 创建6份配置文件 mkdir redis-cluster cd redis-cluster mkdir 7001 7002 7003 8001 8002 80037001文件夹创建配置文件redis.conf port 7001 cluster-enabled yes cluster-config-file nodes-7001.conf cluster-node-timeout 5000 appendonly ye…...
小红书笔记爬虫
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…...
国密GmSSL v2版本命令行方式生成国密sm2私钥、公钥、签名和验证签名
前言 GmSSL是国密算法的工具库(主要包含SM2、SM3、SM4和国密SSL证书生成等功能),项目本身是OpenSSL的分支,但是截至文章发布为止,OpenSSL主分支的国密算法并不完善,目前并不支持签名和解签,所以…...
2023年9月惠州/深圳CPDA数据分析师认证找弘博创新
CPDA数据分析师认证是大数据方面的认证,助力数据分析人员打下扎实的数据分析基础知识功底,为入门数据分析保驾护航。 帮助数据分析人员掌握系统化的数据分析思维和方法论,提升工作效率和决策能力,遇到问题能够举一反三,…...
it运维监控管理平台,统一运维监控管理平台
随着系统规模的不断扩大和复杂性的提高,IT运维管理的难度也在逐步增加。为了应对这一挑战,IT运维监控管理平台应运而生。本文将详细介绍IT运维监控管理平台的作用和优势以及如何选择合适的平台。 IT运维监控管理平台的作用管理平台 IT运维监控管理平台是…...
TDengine 官网换了新“皮肤”,来看看这个风格是不是你的菜
改版升级,不同以“网”!为了更好地服务客户,让大家能够更便捷、清晰地了解我们的产品和功能,我们决定给 TDengine 官网换个新“皮肤”~精心筹备下,新官网终于成功与大家见面啦——https://www.taosdata.com/。TDengine…...
MFC:自绘CListBox,GetText返回一个乱码
问题描述 自绘CListBox,GetText返回一个乱码,并且还会伴随以下断言 解决方案 ListBox Control 属性【Has Strings】改为True即可...
shell 脚本发布前后端代码
shell 脚本发布前后端代码 1、发布前端2、发布后端 1、发布前端 #! /bin/bashif [ ! $1 ] thenecho "this command needs 1 parameters"exit fiif [ -d "/usr/local/nginx/html/xxxx-$1" ] thenecho "file exists: /usr/local/nginx/html/xxxx-$1, p…...
我的私人笔记(Linux中安装mysql)
1.安装wget:yum -y install wget 2.下载mysql社区版本源并安装 wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum install -y mysql57-community-release-el7-10.noarch.rpm rpm --import https://repo.mysql.com/RPM-GPG-KEY-mys…...
IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven目录结构和idea的整合
Maven工程目录结构约束(约束>配置>代码) 项目名 src【书写源代码】 main【书写主程序代码】 java【书写java源代码】resources【书写配置文件代码】 test【书写测试代码】 java【书写测试代码】 pom.xml【书写Maven配置】 测试步骤(进入项目名根目录【在根…...
Android Automotive概述
Android开发者的新赛道 在智能手机行业初兴起时,包括BAT在内许多传统互联网企业都曾布局手机产业,但是随着手机市场的基本定型,造车似乎又成了各大资本下一个追逐的方向。百度、小米先后宣布造车,阿里巴巴则与上汽集团共同投资创…...
iOS 16.4更新指南:问题解答与新功能一览
我应该更新到iOS 16.4吗?这是许多iPhone用户在新更新可用时问自己的一个常见问题。最新的iOS版本提供了各种功能和改进,因此更新的诱惑力很大。 但是,在更新之前,你应该考虑几个因素,以确保安装过程顺利成功。这些因素…...
Vue + Element UI 前端篇(八):管理应用状态
使用 Vuex 管理应用状态 1. 引入背景 像先前我们是有导航菜单栏收缩和展开功能的,但是因为组件封装的原因,隐藏按钮在头部组件,而导航菜单在导航菜单组件,这样就涉及到了组件收缩状态的共享问题。收缩展开按钮触发收缩状态的修改…...
开发常用代码区
1. 查询两个LocalDate类型之间的所有日(周,月) long numOfDays ChronoUnit.WEEKS.between(startDateLocal, endDateLocal); List<LocalDate> dateList LongStream.range(0, numOfDays).mapToObj(startDateLocal::plusWeeks)//映射.c…...
SpringBoot+MySQL+Vue前后端分离的宠物领养救助管理系统(附论文)
文章目录 项目介绍主要功能截图:后台:登录个人中心宠物用品管理宠物领养管理用户管理用户领养管理宠物挂失管理论坛管理系统管理订单管理前台首页宠物挂失论坛信息宠物资讯部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创...
ClickHouse 存算分离改造:小红书自研云原生数据仓库实践
ClickHouse 作为业界性能最强大的 OLAP 系统,在小红书内部被广泛应用于广告、社区、直播和电商等多个业务领域。然而,原生 ClickHouse 的 MPP 架构在运维成本、弹性扩展和故障恢复方面存在较大局限性。为应对挑战,小红书数据流团队基于开源 C…...
STM32-DMA
1 DMA简介 DMA(Direct Memory Access),中文名为直接内存访问,它是一些计算机总线架构提供的功能,能使数据从附加设备(如磁盘驱动器)直接发送到计算机主板的内存上。对应嵌入式处理器来说,DMA可…...
1065 A+B and C (64bit)
题:点我 题目大意: 这题虽然看着像签到,然鹅签不过去。 因为我最初写的沙雕代码是: #include<iostream> #include<cstdio> using namespace std; int main(void) {int t;scanf("%d", &t);for (int i …...
阿里云效和阿里在线idea使用
阿里云效 https://flow.aliyun.com/all?page1 阿里在线idea:https://ide.aliyun.com/ 在云效中创建的项目可以在在线idea 打开 运行中的项目 设置ssh 设置以后可以使用云效率的代码构建来构建代码 设置 添加自有云或者体验5h...
[git] 删除分支中的内容 -> 空分支
git branch 分支名1 #创建一个新分支git checkout 分支名1 #切换到刚创建的分支上git rm -rf . #删除所有文件内容 -> 空分支(注意:命令后面有个.) 也可以 git checkout --orphan 分支名1 #创建一个分支,其包含父分支…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
