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

ubuntu搭建redis cluster集群三主三从(从0搭建,小白也会,不啰嗦)

1.下载redis

官网太慢,可以从https://download.redis.io/releases/  去下载对应的版本,我这里用的是6.2.9的版本

下载完成后,上传到对应的服务器,我的服务器是ubuntu

2.解压缩编译安装

使用tar命令进行解压缩

tar -zxvf redis-6.2.9.tar.gz 

 cd进入解压出来的redis目录中,依次执行make和make install命令

 

3.创建准备目录

在redis目录下创建logs文件夹,用于存放日志

在redis目录下创建redisdatajiqun目录,并在该目录下一次创建6个子目录redisdata6379等等,用于存放6个节点的数据文件

 

4.处理配置文件

个人习惯,不想对原配置文件进行操作,以便有个原始备份文件,所以先把redis.conf原文件拷贝一份

 然后使用vim对redis-master1.conf进行编辑

#因为我就在本机上运行,所以bind这里不作任何修改
bind 127.0.0.1 -::1
#这个一般配合bind一起修改,一样的原因,我这里不作修改
protected-mode yes
#我这个配置文件用于第一个主节点,所以就是默认端口6379,后面几个节点要修改这里
port 6379
#这个要改成yes,这样才能后台运行,不然运行起来,当你退出服务器就停止运行了
daemonize yes
#同理,因为这个配置文件就是6379所以不修改,后面几个节点要修改,改成redis_xxxx.pid就行,具体看端口
pidfile /var/run/redis_6379.pid
#日志存储位置
logfile "/usr/local/yischool/redis-6.2.9/logs/redis-6379.log"
#数据文件存储位置
dir /usr/local/yischool/redis-6.2.9/redisdatajiqun/redisdata6379

##集群相关###
#开启集群
cluster-enabled yes
#设定节点配置文件名
cluster-config-file nodes-6379.conf
#设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换
cluster-node-timeout 15000


配置完成后,输入wq保存退出,然后复制5份,分别起名叫做redis-master2.conf,redis-master3.conf,redis-salve1.conf,redis-salve2.conf,redis-salve3.conf

 共计三个主节点配置,三个从节点配置

然后把另外5个配置文件里的名字和端口都改下,主要改如下几个地方,然后保存

#端口号,分别一次改成6380,6381,6382,6383,6384
port 6379
#同理
pidfile /var/run/redis_6379.pid
#同理
logfile "/usr/local/yischool/redis-6.2.9/logs/redis-6379.log"
#同理
dir /usr/local/yischool/redis-6.2.9/redisdatajiqun/redisdata6379

##集群相关###
#同理
cluster-config-file nodes-6379.conf


 

5.启动集群

1)启动多个redis

先把6个redis启动起来,进入到src目录,然后使用redis-server 依次启动

使用 ps -ef|grep redis 命令可以看到6个集群节点的redis已经启动起来了

 2)创建集群

命令:

redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

解释:
redis-cli --cluster : 代表集群操作命令
create :代表是创建集群
cluster-replicas 1: 指定集群中每个master的副本数为1,此时主节点master的总数就是 集群节点总数除以(replicas+1)等于N,因此节点中的前N个为master节点,其他节点都是slave节点,随机分配到不同的master

执行后如下: 

然后这里输入yes

看到这里集群就启动完毕了。而且我们看到M开头的是主节点,S开头的是从节点,由端口号可知,我们创建集群的命令中,前三个ip代表主节点,后三个代表从节点,所以创建集群的时候注意一下。

3)验证集群

redis-cli -c 连接集群

cluster info 查看集群状态

 

6. 其他

1)重新启动集群

如果把redis节点都杀死,重新执行 ,会报错

[ERR] Node 127.0.0.1:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

这是因为之前的数据文件没有清理,可以到咱们设置的redis目录下的redisdatajiqun里把各个节点目录里的都删除干净再运行即可,记得要停止redis再清理

 

2)集群密码设置

 首先要保证每个节点的密码要保持一致。其次在配置文件中加入如下配置,然后重启运行集群

‌masterauth‌:这个配置项用于设置从节点在同步数据时需要使用的密码。当从节点尝试从主节点同步数据时,必#须提供这个密码才能成功进行数据同步。这个密码主要用于从节点和主节点之间的数据同步过程,确保从节点能##够安全地从主节点获取数据‌

‌requirepass:这个配置项用于设置客户端连接redis服务器时需要的密码。也就是说,当客户端尝试连接Redis服务器时,需要提供这个密码才能成功连接。这个密码主要用于控制谁可以访问Redis服务器,确保只有授权的用户才能进行操作‌


masterauth  yourpassword

requirepass yourpassword

再运行集群需要加入 -a yourpassword  

redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1 -a yourpassword

今天时间紧就先写到这,有机会再补充相关知识点把。

本人个人原创,如有雷同,纯属巧合,或者与本人联系,做改动。请转载或者CV组合标明出处,谢谢!(如有疑问或错误欢迎指出,本人QQ:752231513)


http://www.kler.cn/a/454370.html

相关文章:

  • C++:单例模式
  • Pytorch文件夹结构
  • 零基础微信小程序开发——页面导航之编程式导航(保姆级教程+超详细)
  • LabVIEW生物医学信号虚拟实验平台
  • VSCode 插件开发实战(十二):如何集成Git操作能力
  • 本原多项式
  • (十)Ubuntu 20.04+akiaaa大神 Stable Diffusion整合包 AI绘画教程-外挂VAE模型等快捷设置教程
  • HarmonyOS NEXT 实战之元服务:静态案例效果---电动车电池健康状况
  • DPO(Direct Preference Optimization)算法解释:中英双语
  • 嵌入式学习-QT-Day11
  • .NET Core 中使用 C# 获取Windows 和 Linux 环境兼容路径合并
  • springcloud依赖
  • MongoDB 创建用户、User、Role 相关 操作
  • 机器学习基础算法 (二)-逻辑回归
  • 【LeetCode 面试经典150题】详细题解之哈希表篇
  • QT-【常用容器类】-QList类 QLinkedList类
  • stp生成树协议
  • Apache Solr XXE(CVE-2017-12629)--vulhub
  • 低代码开源项目Joget的研究——Joget7社区版安装部署
  • 寻找适合小户型的开源知识库open source knowledge base之路
  • ModbusTCP转Profinet:ABB机器人与PLC的高效连接
  • 《解锁 Python 数据挖掘的奥秘》
  • easegen将教材批量生成可控ppt课件方案设计
  • ubuntu服务器配置IP
  • Ubuntu下通过Docker部署MySQL服务器
  • 【LeetCode】726、原子的数量