redis3.0集群使用发现的一些问题

1、看了官方文档,没有发现有关整个集群关闭再启动的方法。集群是多机器多节点运行,一般情况不可能出现所有机器都挂掉。但万一同时挂掉,数据丢失的可能性就极大了。

验证方法:手动关闭了集群中所有节点,然后再逐一启动所有节点。然后用redis-trib.rb在创建集群时报如下错误,从官方文档中也没有找到相关说明。

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

2、不支持在配置文件中设置密码认证。

在配置文件中设置密码,redis-trib.rb在创建集群提示无法连接节点。

在命令行客户端下使用config set requirepass password 可以设置密码。

但测试发现集群中只要有多个节点重启后,密码认证就会失去作用。

3、发现额外开启了一些端口,暂不清楚作用,猜测是用于集群节点健康检查。

最初搭建集群规划机器和端口情况如下:

192.168.116.129    7000,7003

192.168.116.130    7001,7004

192.168.116.131    7002,7005

由于在公网环境下使用,所以开启iptables,添加了一规则:

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.116.129 --dport 7000 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.116.129 --dport 7003 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.116.131 --dport 7000 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.116.131 --dport 7003 -j ACCEPT

开启iptables之后,检测集群一直发现异常:

在192.168.116.129 这台机器执行netstat -nltp命令查看,发现监听的端口除了配置文件中定义的7000和7003外,还监听了17000

和17003.

在另外两台机器上查看,发现情况一样。

随后在每台机器上重新添加几条规则,192.168.116.129规则如下:

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.116.129 --dport 17000 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.116.129 --dport 17003 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.116.131 --dport 17000 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.116.131 --dport 17003 -j ACCEPT

然后重新检测下集群,恢复正常:

时间: 2024-12-14 12:04:47

redis3.0集群使用发现的一些问题的相关文章

redis3.0集群说明与搭建

Redis3.0集群说明: 1.  Redis集群提供一种运行Redis的方式,数据被自动的分片到多个Redis节点. 2. 集群不支持处理多个键的命令,因为这需要在Redis节点间移动数据,使得                 Redis集群不能提供像Redis单点那样的性能,在高负载下会表现得不可预知. 3.  集群可在多个节点间自动拆分数据集. 当部分节点正在经历失败或者不能与集群其他节点通信时可继续运转 4 Redis集群不保证数据强一致性. redis-server 集群以哈希槽的方式

Redis3.0 集群

1  Redis3.0集群 Redis3.0之前项目架构

redis3.0集群部署方案

redis3.0集群部署方案redis1:192.168.1.10:6379       192.168.1.10:6380redis2:192.168.1.11:6379       192.168.1.11:6380redis3:192.168.1.12:6379       192.168.1.12:6380关闭 selinux ,防火墙允许6379 6380端口通过, 先启动各服务器的redis节点在制作集群       redis1配置:yum -y insall gcc ruby r

Redis3.0集群方案分析

在Redis3.0集群出来之前,大家都对作者antirez寄予厚望,因为Redis从来没有让我们失望过.现在Redis3.0集群出来了,网上出了很多评论文章,都说他的功能多么强大,包括下面这张图是彻底把我欺骗了. 等到我把Redis3.0客户端库hiredis编译好集成到公司系统,访问其中一台Redis3.0服务器居然返回"MOVED 2318 10.12.8.156:6379",这才了解到访问其他Redis3.0服务器的Key需要二次定位,这就是Redis3.0所谓的ASK 转向/M

redis3.0集群部署和测试

redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141redis版本:redis-3.2.4 部署前准备 关闭防火墙--->systemctl stop firewalld开机禁用防火墙--->systemctl disable firewalld临时关闭selinux--->setenforce 0永久关闭selinux--->sed -

redis3.0集群搭建

Redis集群搭建 redis cluster介绍 节点自动发现.集群容错slave选举.Cluster管理.集群配置管理. 集群中的每个Redis节点需要2个TCP连接端口,如6379端口用于Client连接,16379端口用于集群数据通信 集群采用Hash Slot方案,而不是一致性哈希,共16384个Hashslot.如果有3台机器,那么NodeA在0-5500,NodeB 在5501-11000,NodeC在11001-16384.这种设计下,添加,删除新Node比较方便. 由于Hash

redis3.0集群安装部署

wget http://download.redis.io/releases/redis-3.0.0.tar.gz && tar zxvf redis-3.0.0.tar.gz && cd redis-3.0.0 && make PREFIX=/usr/local/redis install mkdir -p /usr/local/redis/run mkdir -p /usr/local/redis/logs mkdir -p /usr/local/red

redis3.0 集群实战2 - 集群功能实战

1 集群基本操作 1.1 查看当前集群状态 使用redis-trib.rb check功能查看对应的节点的状态: [[email protected] bin]# ./redis-trib.rb check 127.0.0.1:7000 Connecting to node 127.0.0.1:7000: OK Connecting to node 127.0.0.1:7002: OK Connecting to node 127.0.0.1:7001: OK Performing Cluste

redis3.0 集群实战1 -- 安装和配置

本文主要是在centos7上安装和配置redis集群实战 参考: http://hot66hot.iteye.com/blog/2050676 集群教程: http://redisdoc.com/topic/cluster-tutorial.html#id2 1 安装准备 1.1 下载redis3.0版本 到redis官网redis.io或者redis中文官网www.redis.cn上(http://www.redis.cn/download.html)去下载最新的版本,我下载的是redis3.