您的位置:首页 > 数据库 > Redis

Redis的集群搭建

2016-08-13 16:03 330 查看
集群环境至少需要3个节点。推荐使用6个节点配置,即3个主节点,3个从节点。我们在一台机器上开启多个redis的实例。

第一步:创建一个文件夹redis-cluster,然后在下面建立6个文件夹如下:

(1)、mkdir -p /usr/local/redis-cluster



(2)、mkdir 7001, mkdir 7002,mkdir 7003,mkdir
7004,mkdir 7005,mkdir 7006



第二步:把之前的redis.conf配置文件分别copy到700*文件夹下,进行修改各个配置文件的内容,也就是对700*文件夹下的配置文件进行修改。

(1).
daemonize    yes

(2).
port    700*  (分别对每个机器的端口号进行设置)

(3).
bind hostname/ip (必须绑定当前机器的主机名或者IP地址)

(4).
dir   /usr/local/redis-cluster/700*/  (指定数据文件的存放位置,必须要指定不同的存放目录)

(5).
cluster-enabled   yes  (启动集群模式)

(6).
cluster-config-file   nodes-700*.conf  (这里的700*最好和port对应上) 

(7).
cluster-node-timeout   5000

(8).
appendonly   yes

第三步:把修改后的配置文件,分别copy到各个文件下,注意每个文件夹要修改端口号,并且nodes文件也要不相同。

第四步:由于redis集群需要使用ruby命令,所以我们需要安装ruby。

(1).
yum install ruby



(2).
yum install rubygems



(3).
gem install redis (安装redis和ruby的接口)



第五步:分别启动6个redis的实例,然后检查启动是否成功。

(1). [root@npf1
local]# /usr/local/redis-3.2.0/src/redis-server /usr/local/redis-cluster/700*/redis.conf



(2). netstat
-tunpl | grep redis



第六步:首先到redis的安装目录下,然后执行redis-trib.rb命令。

(1). [root@npf1
local]# cd redis-3.2.0/src/

(2). [root@npf1
src]# ./redis-trib.rb create --replicas 1  npf1:7001 npf1:7002 npf1:7003 npf1:7004 npf1:7005 npf1:7006



可是当我们输入yes的时候,却出现下面的异常:

ERR Invalid node address specified: npf1:7001 (Redis::CommandError)



后来查阅资料才知道:由于redis-trib.rb 对域名或主机名支持不好,故在创建集群的时候要使用ip:port的方式。

以下是一些常见的问题解决方式:

(1). 创建集群时报某个err slot 0 is already
busy (redis::commanderror)

这是由于之间创建集群没有成功,需要将nodes.conf和dir里面的文件全部删除(注意不要删除了redis.conf)

(2). 创建集群时一直处于"Waiting
for the cluster to join...................................."的状态

这个问题原因不知,但解决方法是在redis.conf文件中把bind
127.0.0.1本地环回口改为物理接口

(3). 安装ruby
redis时长时间没响应

这是由于天朝网络,解决办法是改ruby源(请自行baidu)或手动安装

ok,
为了解决问题,我们必须把700*/ 目录下的redis.conf配置文件中的bind npf1 改变成为bin 192.168.1.76 的IP地址。

现在我们执行下面的命令:

[root@npf1 src]# ./redis-trib.rb create --replicas 1  192.168.1.76:7001 192.168.1.76:7002 192.168.1.76:7003 192.168.1.76:7004 192.168.1.76:7005 192.168.1.76:7006



到此为此,集群已经创建成功了。

第七步:进行验证。

(1)、连接任意一个客户端即可。

./redice-cli -c -h -p (-c表示集群模式,-h表示指定IP地址,-p表示指定端口号)。

例如:[root@npf1 src]# ./redis-cli -c -h 192.168.1.76 -p 7001



(2)、进行验证:cluster info (查看集群信息), cluster nodes (查看节点列表)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: