您当前的位置:首页 > 电脑百科 > 数据库 > Redis

redis5.0.7 版本集群liunx部署简易流程

时间:2020-08-01 14:11:12  来源:  作者:

转载出处:享学课堂online

作者:提灯

本次工作最大的坑就是:各种过时的教程和错误教程留下的新坑 ~~坑中打滚实录~~

本文只搭建最简单的集群

>环境:redis版本:5.7

>操作系统:linux虚拟机

>虚拟机软件:VMware Workstation 10.0.3

>本次ip地址配置为:192.168.163.101

第一关:[ERR] Node 192.168.163.101:6379 is not configured as a cluster node.

这个报错是说您想搞的节点未配置为群集节点,我相信很多人百度过这个,百度上的解释真的是五花八门,什么复制redis整个文件夹到xxx目录下/修改xxxxx配置啊/装trib插件。

简单来说你的问题可能是:

启动的还是默认的:redis启动方式

启动的配置文件中没有配置对应的参数

如何解决呢?

1.我们先来明确一个叫 redis-server 的启动文件,这个文件是对redis加载对应的配置文件来启动redis,具体坐标在redis安装文件中的src文件夹中。

2.对应的配置文件:redis.conf,具体怎么配置属性下文讲,位置就在redis文件夹中。

3.写到这里你也大概知道了吧,我们需要用 redis-server 去启动你配置好的 redis.conf 文件。

第二关:配置redis.conf文件 建议用可视化工具

因为每启用一个节点就要配置一个对应的redis.conf文件,所以为了我们可以更好的管理我们的配置文件,所以,我们可以在redis安装位置的同级目录,创建一个个对应管理文件夹,文件名是无所谓的。

redis5.0.7 版本集群liunx部署简易流程

 

这个redis-5.0.7就是我的安装文件,切记这个文件中所有的文件,均不需要更改 !!! 我这次用的端口7001-7006,所以就建了6个对应的文件夹你看我起名字多随意 接着我们就去直接从redis安装目录下的redis.conf文件给复制过来,进行更改

redis5.0.7 版本集群liunx部署简易流程

 

我这文件夹中只有一个对应的配置文件,我看的一些教程中有说复制整个安装目录的就歇歇吧,接着我们修改这个文件即可。

port 6379 #端口

cluster-enabled yes #启用集群模式

cluster-node-timeout 5000 #超时时间

Appendonly yes # 是否启用aof

daemonize yes #后台运行

protected-mode no #非保护模式

cluster-config-file nodes.conf # redis启动自己创建

pidfile /var/run/redis_6379.pid

bind 0.0.0.0 #可读取地址 0.0.0.0代表都能读取

这里说明下,部分配置在配置文件有加上#号,就去掉,bind这个配置有3个,前两个都是有#注释了,只有一个默认是127.0.0.1是没有注释的,改这个就好了。

这里着重说下bind这个选项,如果你的公司没有特殊要求,建议参数改为 0.0.0.0 ,不然会出现很多奇奇怪怪的错误,而且是那种解决一种另外一种又出现的错误

这里我把我的7001的配置直接发上来,如果搞不定的话,或者是我漏写了某个要点,我把我配置好的文件拿出来,特地实验过新的虚拟机装redis后redis-server直接跑没问题。

修改好的配置文件地址:

链接:https://pan.baidu.com/s/1MbRin1VjNsBSnYjw8N67eA 提取码:8pt6

我们将这个redis.conf文件,分别复制到对应的文件目录中,接着我们直接将文件中所有的7001改成对应的700x,配置就完成了,简不简单啊ヽ( ̄▽ ̄)ノ

第三关:3个实例->3个主节点

本次路径解释

/usr/local/src/redis/redis-5.0.7/src/redis-server #安装目录下redis-server的路径

/usr/local/src/redis/7001/redis.conf #配置文件中的redis.conf路径

首先分别启动7001,7002,7003这3个实例

redis5.0.7 版本集群liunx部署简易流程

 

接着我们运行:

redis-cli--cluster create192.168.163.101:7001192.168.163.101:7002192.168.163.101:7003

这个就是设置这3个端口,创建集群主节点的操作,如果这时候,你报错说什么连不上这3个端口,就去上文看我写的bind的配置。

如果再次出现[ERR] Node 192.168.163.101:6379 is not configured as a cluster node.说明我上面写的集群配置你还是no

redis5.0.7 版本集群liunx部署简易流程

 

这里注意一定要写yes!!! 只写个y或者写什么鬼东西的,出了问题,概不负责。

redis5.0.7 版本集群liunx部署简易流程

 

查询集群状态(任意一个节点均可查询):

redis-cli--cluster check192.168.163.101:7001--cluster-search-multiple-owners

redis5.0.7 版本集群liunx部署简易流程

 

这样子表示3个主节点均已开启,都是0个从节点是正常的,因为我都没配嘛。

第四关:3个实例->3个从节点

这一步应该都懂怎么创建实例了吧,创建过程就跳过,↓添加从节点代码

redis-cli--cluster add-node#从节点# #主节点# --cluster-slave

redis-cli--cluster add-node192.168.163.101:7004192.168.163.101:7001--cluster-slave

redis5.0.7 版本集群liunx部署简易流程

 

上一步没错,这步也大概率错不了。 增加时:会平均的给7001.7002.7003分配从节点

redis5.0.7 版本集群liunx部署简易流程

 

所有的节点都出现1个子节点,说明配置成功了,

恭喜了各位,到这一步,7001.7002.7003.7004.7005.7006 已经是个完整的集群了

以下是补充

5.0集群部署和4.0的区别

参考: https://www.cnblogs.com/zhoujinyi/p/11606935.html

不知道自己版本的可以先在liunx下用:redis-cli --version 或 redis-cli -v 进行查询

redis5.0.7 版本集群liunx部署简易流程

 

如果自己的版本是5.0以上本文适合你,如果你用的还是4.0我就无能为力了

有关于集群的改动,其实就一条:

redis5.0.7 版本集群liunx部署简易流程

 

如果你跟我一样,找教程时候,发现这个教程要装除了redis之外的另外一个trib脚本,就说明他是4.0版本的软件,当然操作命令行还是一样的,但我就没成功顺着那些教程走起来…(ŎдŎ;)

JAVA中测试分片的类不能测试集群!

报错:

Exception in thread "main" redis.clients.jedis.exceptions.JedisMovedDataException: MOVED 7798 192.168.163.101:7002

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect

启动路径要写清楚!

错误演示:

[root@localhost ~]# /usr/local/src/redis/redis-5.0.7/src/redis-server /usr/local/redis-cluster/redis02/redis.conf

错误:

1385:C 01 Mar 2020 14:24:20.420 # Fatal error, can't open config file '/usr/local/redis-cluster/redis02/redis.conf'

报错:(error) CLUSTERDOWN Hash slot not served

在liunx下,可以进入节点,但set时候报这个错的话,你说你是不是配置主节点的是时候没有老老实实输入yes,重新来一遍吧



声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
▌简易百科推荐
来源: my.oschina.net/xiaomu0082/blog/2990388首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应...【详细内容】
2021-12-08  Java识堂    Tags:Redis   点击:(16)  评论:(0)  加入收藏
我不知道为什么你会选择对特定数量的“错误”(或警告)如此具体。听起来您正在寻找将要发布到 Yahoo! 的某些文章的内容。 Insider (N Foos to Blah for the BlahBlah)。那说:...【详细内容】
2021-12-07  富集云科技有限公司    Tags:Redis   点击:(14)  评论:(0)  加入收藏
目录 一、背景 二、步骤 0.理论支持 1、获取数据 2、结果 3、分析数据并评估大小 三、关于repl-backlog-size 一、背景 repl-backlog-size控制这个环形缓冲区. ​ 主从断...【详细内容】
2021-11-05  弈秋的美好生活    Tags:redis   点击:(41)  评论:(0)  加入收藏
Redis 性能测试是通过同时执行多个命令实现的。1,Redis-benchmarkRedis性能命令:redis性能命令格式: redis-benchmark [option] [option value] redis 性能测试工具可选参数如...【详细内容】
2021-11-02  川石信息    Tags:Redis   点击:(41)  评论:(0)  加入收藏
1 概述数据结构和内部编码 无传统关系型数据库的 Table 模型schema 所对应的db仅以编号区分。同一 db 内,key 作为顶层模型,它的值是扁平化的。即 db 就是key的命名空间。 key...【详细内容】
2021-11-01  JavaEdge    Tags:Redis   点击:(28)  评论:(0)  加入收藏
普通java中使用引用Java redis 驱动,即可连接:import redis.clients.jedis.Jedis; public class RedisTestJava { public static void main(String[] args) { //连...【详细内容】
2021-10-13  faesuite    Tags:Redis   点击:(34)  评论:(0)  加入收藏
Redis常用的数据结构有 string list set zset hashstringstring 是 Redis 的基本的数据类型,一个 key 对应一个 value。string 类型是二进制安全的,Redis的string可以包含任...【详细内容】
2021-10-12  语霖    Tags:Redis   点击:(36)  评论:(0)  加入收藏
列表类型可以存储一组按插入顺序排序的字符串,它非常灵活,支持在两端插入、弹出数据,可以充当栈和队列的角色。> LPUSH fruit apple(integer) 1> RPUSH fruit banana(integer)...【详细内容】
2021-09-17  深夜敲代码    Tags:Redis   点击:(54)  评论:(0)  加入收藏
Redis持久化意义 是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你的redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用 大量的请...【详细内容】
2021-08-12  小李说IT    Tags:Redis   点击:(77)  评论:(0)  加入收藏
当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶意攻击时,接口的访问全部透过Redis访问数据库,而数据库中也没有这些数据...【详细内容】
2021-07-30  随便t    Tags:缓存穿透   点击:(90)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条