ubuntu单机部署redis集群

1、下载redis

Index of /releases/

官网太慢,可以从Index of /releases/ 去下载对应的版本,我这里用的是6.2.9的版本,上传到对应的服务器

2、安装redis

1)使用tar命令进行解压缩

复制代码
tar -zxvf redis-6.2.9.tar.gz 

2)进入redis-6.2.9文件夹

先安装c的环境:sudo apt-get install gcc

然后执行:make

然后执行: make install

验证:make test

3)创建文件目录

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

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

4)处理配置文件

将原始redis.conf文件备份一份进行操作

同理创建其他conf

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 "/home/frank/redis/redis-6.2.9/logs/redis-6379.log"
#数据文件存储位置
dir /home/frank/redis/redis-6.2.9/redisdata/redisdata6379
 
##集群相关###
#开启集群
cluster-enabled yes
#设定节点配置文件名
cluster-config-file nodes-6379.conf
#设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换
cluster-node-timeout 15000

其他配置依次修改端口号:6379 6380 6381 6382 6383 6384和对应的日志文件目录

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

3、启动集群

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 查看集群状态

4、其他

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. ![](https://i-blog.csdnimg.cn/direct/fae9467f3d82497e9314a91fd8079009.png) 这是因为之前的数据文件没有清理,可以到咱们设置的redis目录下的redisdatajiqun里把各个节点目录里的都删除干净再运行即可,记得要停止redis再清理 ![](https://i-blog.csdnimg.cn/direct/feb349876b694978a146b129cedc729e.png) ![](https://i-blog.csdnimg.cn/direct/5dde16f677b749b389bb0ebbc930ea43.png) 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 3)集群通讯总线设置 后来我在6台云服务器上进行了部署,发现一直卡在 waiting for the cluster to join ![](https://i-blog.csdnimg.cn/direct/26519a780e5846deae67a677d06c0b3b.png) 原来是端口开放问题,一般我只开了6379端口,若通讯端口为6379,那么集群总线端口16379一定要打开。于是在我的云服务的安全规则里,开启了16379端口的互通白名单。然后就启动成功了

相关推荐
科技小花2 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸2 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain3 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希3 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神3 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员3 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java4 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿4 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴4 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存
YOU OU4 小时前
三大范式和E-R图
数据库