redis单机模式启动后,修改完配置文件,使用以下命令创建redis集群:

sudo ./src/redis-trib.rb create --replicas 1 ip1:6379 ip2:6379 ip3:6379

结果报错:

>>> Creating cluster
[ERR] Sorry, can't connect to node ip1:6379

在网上查找资料发现,可能有以下几种原因:

1.ruby的版本太低。

2.关闭redis的保护模式。

3.redis的配置文件中bind的ip需要时外网ip,127.0.0.1不行,确保外网能telnet通。

4.在将redis写入注册表时,开启了redis的密码模式,也会导致这个问题,需要关闭密码模式。

以上几种方法对应完了,这个错误就没有了。

接着报了第二个错:

[ERR] Node ip2:6379 is not configured as a cluster node.

原因是第二台redis服务器没有开启集群模式,修改第二台服务器的redis的配置文件:

cluster-enabled yes

appendonly yes

修改完了之后,重启第二台redis服务时报了这个错:

14652:M 21 Feb 18:26:50.758 # Sorry, the cluster configuration file nodes.conf is already used by a different Redis Cluster node.
Please make sure that different nodes use different cluster configuration files.

改变这台redis的配置文件指向的nodes.conf文件即可。

再记录几个redis下常用的命令:

#查看redis版本
./src/redis-server -v #启动redis服务
sudo ./src/redis-server ./redis.config #停止redis服务的两种方式:
#第一种:
sudo ./src/redis-cli -h 127.0.0.1 -p 6379 shutdown
#第二种:
#进入redis-cli,然后用shutdown命令停止 #查看集群情况:
redis-cli -h ip -p 6379 cluster nodes #查看集群信息:
172.30.1.160:6379> cluster nodes #添加节点:
redis-trib.rb add-node --slave --master-id 08525dd167adbfe4b11b8b8e598efde2de11f31e slaveIp:6380 masterIp:6379

redis集群会经常出错,使用cluster nodes命令和redis-trid.rb check命令查询到的集群状态信息不对,删掉节点之后,在集群状态信息中还有记录,各种办法都没办法解决问题,好在是实验环境,就干掉整个集群,重新装了。集群的缓存信息会存在三种文件里:node.conf配置文件,dump.rdb,appendonly.aof。删掉三个文件,重新创建集群即可。 

创建集群中还报过这个错误,删除了三种缓存文件还是不行,最后登入每个节点用flushall和cluster reset命令解决了。

/usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis/client.rb:113:in `call': ERR Slot 12182 is already busy (Redis::CommandError)
from /usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis.rb:2556:in `method_missing'
from /usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis.rb:37:in `synchronize'
from /usr/lib/ruby/1.8/monitor.rb:242:in `mon_synchronize'
from /usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis.rb:37:in `synchronize'
from /usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis.rb:2555:in `method_missing'
from ./src/redis-trib.rb:212:in `flush_node_config'
from ./src/redis-trib.rb:776:in `flush_nodes_config'
from ./src/redis-trib.rb:775:in `each'
from ./src/redis-trib.rb:775:in `flush_nodes_config'
from ./src/redis-trib.rb:1296:in `create_cluster_cmd'
from ./src/redis-trib.rb:1696:in `send'
from ./src/redis-trib.rb:1696

创建集群的时候,一直卡在Waiting for the cluster to join.....这一步,先删除三种文件:node.conf配置文件,dump.rdb,appendonly.aof;再把iptables关闭:sudo service iptables stop

转载请标明出处: http://www.cnblogs.com/gaojiang/p/6427693.html

再附几个查找资料过程中发现几篇比较好的帖子:

从集群的原理到搭建,讲的比较透彻:

http://shift-alt-ctrl.iteye.com/blog/2284890

主要讲了对redis集群的一些操作命令:

http://blog.51yip.com/nosql/1726.html

分析了搭建集群可能出错的原因:

https://my.oschina.net/u/2277929/blog/727734

redis集群搭建中遇到的一些问题的更多相关文章

  1. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  2. 二、redis集群搭建

    redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...

  3. redis集群搭建及注意事项

    上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...

  4. Linux Redis集群搭建与集群客户端实现(Python)

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  5. [转载] Redis集群搭建最佳实践

    转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...

  6. Linux Redis集群搭建与集群客户端实现

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  7. Redis集群搭建-韩国庆

    认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...

  8. redis集群搭建及设置账户(转)

    Redis集群搭建以及为集群设置密码 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. ...

  9. Redis集群搭建过程

    我在搭建Redis集群过程中遇到了一些问题,现记录下来. Redis搭建需要在系统中安装好ruby.gem.zlib等工具,可参考https://www.cnblogs.com/wuxl360/p/5 ...

随机推荐

  1. Python 库整理【收藏】

    库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式 ...

  2. Linux useradd 命令介绍

    Linux useradd 命令介绍 作者: Alan Formy-duval 译者: LCTT Brooke Lau | 2020-01-06 22:58 使用 useradd 命令来添加用户(并且 ...

  3. linux系统ifconfig中网卡名和网卡配置文件名称不同的解决办法

    比如我的配置文件, cd /etc/sysconfig/network-scripts/ifcfg-eth1是这个名称,但是我使用ifconfig显示的信息却是 eth0,很明显这不是我配置文件的名称 ...

  4. 矩阵中的路径 DFS+剪枝

    给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过相邻的单元格内的字母 ...

  5. ace-editor

    1. ace-editor编辑器只读状态:editor.setReadOnly(true);  // false to make it editable 2. ace-editor设置程序语言模式:e ...

  6. 在Visual Studio 中使用git——分支管理-下(九)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...

  7. js中reduce用法详解

    介绍reduce reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当 ...

  8. 大型图像数据聚类匹配:ICCV2019论文解析

    大型图像数据聚类匹配:ICCV2019论文解析 Jointly Aligning Millions of Images with Deep Penalised Reconstruction Conge ...

  9. 字符识别OCR原理及应用实现

    字符识别OCR原理及应用实现 文本是人类最重要的信息来源之一,自然场景中充满了形形色色的文字符号.光学字符识别(OCR)相信大家都不陌生,就是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过 ...

  10. Ascend昇腾计算

    Ascend昇腾计算 Ascend昇腾计算,是基于昇腾系列处理器构建的全栈AI计算基础设施及应用,包括昇腾系列芯片.系列硬件.芯片使能.AI框架.应用使能等.华为Atlas人工智能计算解决方案,基于昇 ...