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端口的互通白名单。然后就启动成功了

相关推荐
橙子20255 分钟前
OLLAMA 未授权访问-漏洞挖掘
数据库·sql
未来之窗软件服务6 分钟前
系统安全——文件监控-FileMonitor
运维·服务器·数据库·系统安全
一人の梅雨15 分钟前
西域平台关键字搜索接口开发指南
java·开发语言·数据库
雾岛LYC听风1 小时前
3. 轴指令(omron 机器自动化控制器)——>MC_GearInPos
前端·数据库·自动化
martian6651 小时前
分布式并发控制实战手册:从Redis锁到ZK选主的架构之道
java·开发语言·redis·分布式·架构
四维碎片1 小时前
【Qt】数据库管理
数据库·c++·qt
星河浪人2 小时前
MySQL 性能优化:索引优化与查询优化
数据库·mysql·性能优化
qq_485015212 小时前
Spring Boot数据库连接池
数据库·spring boot·后端
Anthony_49263 小时前
深入理解MySQL事务:从版本链到MVCC的全面解析
数据库·后端·mysql
天上掉下来个程小白4 小时前
Redis-06.Redis常用命令-列表操作命令
java·redis·后端·springboot·苍穹外卖