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

redis集群安装部署

2017-12-05 18:59 489 查看
redis集群规划,redis集群至少需要6个节点(3主3从),此操作是把6各节点都安装在一台服务器上,若服务器多,

可分开进行安装。此实验前提是机器上已经装好了redis。若不会安装redis参考 http://blog.csdn.net/linux_newbie_rookie/article/details/78723586
安装redis集群可参考博客:http://www.cnblogs.com/mafly/p/redis_cluster.html

以下安装是伪集群,若安装真正的集群,则在最少3台机器上,搭建为3主3从,只需要在创建集群节点时输入对应的地址即可。

/redis-cluster/bin/redis-trib.rb create  --replicas 1 192.168.6.190:9001 192.168.6.190:9002 192.168.6.191:9003 192.168.6.191:9004 192.168.6.192:9005 192.168.6.192:9006

1. 创建文件夹,计划集群中redis节点的端口号为9001-9006,数据存放在端口号/data下。

mkdir /redis-cluster

mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data

2. 复制执行脚本

在 /redis-cluster下创建 bin 文件夹,用来存放集群运行脚本,并把安装好的 Redis 的 src 路径下的运行脚本拷贝过来。

mkdir /redis-cluster/bin

cd /usr/local/redis/src

cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/redis-cluster/bin

3. 复制一个新的redis实例

从已经安装好的(/usr/local/redis/)redis中复制一个新实例到9001--9006中

cp /usr/local/redis/* /redis-cluster/9001

修改9001下的redis.conf配置文件:

port 9001(每个节点的端口号)

daemonize yes

bind 192.168.119.131(绑定当前机器 IP)

dir /usr/local/redis-cluster/9001/data/(数据文件存放位置)

pidfile /var/run/redis_9001.pid(pid 9001和port要对应)

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

cluster-config-file nodes9001.conf(9001和port要对应)

cluster-node-timeout 15000

appendonly yes

4. 复制新实例到9002-9006,然后修改配置文件对应的端口号以及相关信息

(可在vim里面:$s###g进行修改,也可以采用下面的sed进行修改)

配置文件修改:

 sed -i 's/cluster-config-file nodes-9001.conf/cluster-config-file nodes-9006.conf/g' redis.conf 

 sed -i 's/\/var\/run\/redis_9001.pid/\/var\/run\/redis_9006.pid/g' redis.conf 

 sed -i 's/logfile ""/logfile "\/redis-cluster\/9006\/log"/g' redis.conf 

 sed -i 's/\/redis-cluster\/9001\/data\//\/redis-cluster\/9006\/data\//g' redis.conf 

 sed -i 's/port 9001/port 9006/g' redis.conf 

 

 5. 启动9001-9006的所有节点。

 /usr/local/bin/redis-server /redis-cluster/9001/redis.conf

 ...

 ...

 ...

 

 5. 找个节点进行测试

 /redis-cluster/bin/redis-cli -h 192.168.119.131 -p 9001

 keys *

 set name mm

 报错:(error) CLUSTERDOWN Hash slot not served(不提供集群的散列槽)

 原因:虽然配置启动了redis集群服务,但是还不在一个集群中,互相不能发现,没有可存储的位置,就是slot(槽)。

6. 安装集群所需软件

  yum install -y ruby

  gem install redis

 报错:

 ERROR:  Error installing redis:

         redis requires Ruby version >= 2.2.2.2

 原因:Centos7yum安装的ruby版本为2.2.2.2,但是安装redis时要求最低为2.2.2.2,自己进行源码编译安装依然还是报错,

 解决方法用rvm来更新ruby

 参考博客:http://blog.csdn.net/FengYe_YuLu/article/details/77628094

 

 出来这样即为成功

 [root@bogon test]# gem install redis

 Successfully installed redis-3.0.0

 Parsing documentation for redis-3.0.0

 Installing ri documentation for redis-3.0.0

 Done installing documentation for redis after 1 seconds

 1 gem installed

7. /redis-cluster/bin/redis-trib.rb create  --replicas 1 192.168.6.190:9001 192.168.6.190:9002 192.168.6.190:9003 192.168.6.190:9004 192.168.6.190:9005 192.168.6.190:9006 

   成功则会出来3主3从,有系统自动分配

   Using 3 masters:

   192.168.6.190:9001

   192.168.6.190:9002

   192.168.6.190:9003

  上面命令解释:调用 ruby 命令来进行创建集群,--replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,

以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。

8. 做到以上则代表redis集群搭建成功,可以在验证下:

 redis-cli -c -h 192.168.6.190 -p 9001

 cluster info   显示集群状态

 cluster nodes  显示集群节点

 此时在设置mm时就可以设置:set name mm

 192.168.6.190:9001> set name mm

-> Redirected to slot [5798] located at 192.168.6.190:9002

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