RedisCluster redis集群配置

1 安装Ruby

yum install ruby

ruby –v       #ruby 1.8.7

yum install rubygems #也可以一句执行 yum install ruby rubygems -y

gem install redis    #安装redis的接口包

gem list      #查看是否安装了gem相关的接口包,检查redis是否已经存在

gem install redis-3.0.0.gem #安装ruby包

2  创建目录

由于cluster的特点,与redis传统主从不同的是,cluster中的节点需要配置在不同的文件夹,否则无法创建集群(尝试过一次,失败)。进入redis根目录,创建节点文件夹,同一个服务器上的不同节点文件夹可以用端口号来命名即可。

mkdir 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 #创建多个目录

:%s/7000/7001/g   #替换所有7000为7001

 

3    修改配置文件redis.conf

复制redis.conf到各个的目录,并对应修改下面内容

P61    bind 127.0.0.1//默认ip为127.0.0.1改为其他节点机器可访问的ip

P80    protected-mode no    //yes修改为no

P84    port 7000            //端口7000

P128   daemonize yes            //后台运行

P150   pidfile /usr/local/src/redis/redis3.2.6/redis_7000.pid //pidfile文件对应7000

P593   appendonly yes           //默认是rdb方式持久化要改成AOF模式

P163   logfile=7000/redis.log   //相对路径,启动时在redis的根目录

P721   cluster-enabled yes //开启集群

P729   cluster-config-file nodes_7000.conf       //集群的配置

P735   cluster-node-timeout 15000 //请求超时默认15秒,可自行设置

4    启动

4.1 启动每个节点实例

先为每个节点创建一个目录,复制redis.conf进去,然后按上面修改内容,修改好后,启动每个实例。

vim start.sh      #创建脚本文件方便启动

bash start        #执行shell脚本

#!/bin/sh

redis-server 7000/redis.conf&

redis-server 7001/redis.conf&

redis-server 7002/redis.conf&

redis-server 7003/redis.conf&

redis-server 7004/redis.conf&

redis-server 7005/redis.conf&

redis-server 7006/redis.conf&

redis-server 7007/redis.conf&

redis-server 7008/redis.conf&

4.2      启动集群

Redis Cluster集群需要ruby来运行其脚本

./src/redis-trib.rb create --replicas 1 192.168.31.30:7000 192.168.31.30:7001 192.168.31.30:7002 192.168.31.30:7003 192.168.31.30:7004 192.168.31.30:7005 192.168.31.30:7006 192.168.31.30:7007 192.168.31.30:7008

service iptables stop

--replicas 1 表示希望为集群中的每个主节点创建一个从节点(一主一从)

前几个自动做为主,后面几个做为从,主节点少于从节点,个数不对应时,多从挂接都一个主上。

注意:提示必须敲入yes,不能是y,y则按不接受处理。

注意:redis-trib-rb的路径,可以配置环境变量来解决

export PATH=/usr/local/ruby-2.1.2/bin;&PATH

#检查节点

./src/redis-trib.rb check 192.168.163.201:7001

------------------------------------------------------分割线--------------------------------------------------------------

不过 redis-trib.rb 是 Redis 作者使用 Ruby 语言开发的,故使用该工具之前还需要先在机器上安装 Ruby 环境。后面作者可能意识到这个问题,Redis 5.0 版本开始便把这个工具集成到 redis-cli 中,以--cluster参数提供使用,其中create命令可以用来创建集群。

实验环境使用的 Redis 版本是 5.0.3,所以我可以直接使用redis-cli --cluster create命令搭建,具体命令如下所示。

/usr/local/bin/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 127.0.0.1:7007 127.0.0.1:7008 --cluster-replicas 1

4.3 启动失败重新启动

启动后会自动产生这些文件,重新启动时需要删除!

rm -rf dump.rdb   #删除redis的备份文件,redis节点中有数据,无法建立集群

rm -rf nodes-700* #删除没有建立成功集群时遗留的文件

5    登录集群

redis-cli -c -p 7000        #任何一个端口都可以,执行命名会自动跳转

6   查看集群状态

127.0.0.1:7000> cluster info

cluster_state:ok

cluster_slots_assigned:16384

cluster_slots_ok:16384

cluster_slots_pfail:0

cluster_slots_fail:0

cluster_known_nodes:9

cluster_size:4

cluster_current_epoch:9

cluster_my_epoch:1

cluster_stats_messages_sent:9154

cluster_stats_messages_received:9154

127.0.0.1:7000> cluster nodes   #查看集群节点状态

cluster nodes 命令的输出有点儿复杂,它的每一行都是由以下信息组成的:

节点 ID :例如 3fc783611028b1707fd65345e763befb36454d73 。

ip:port :节点的 IP 地址和端口号,例如 127.0.0.1:7000 ,其中 :0 表示的是客户端当前连接的 IP 地址和端口号。

flags :节点的角色(例如 master 、 slave 、 myself )以及状态(例如 fail ,等等)。

如果节点是一个从节点的话,那么跟在 flags 之后的将是主节点的节点 ID :例如 127.0.0.1:7002 的主节点的节点 ID 就是 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 。

master节点最后有一个值的范围,就是hash槽,0~16383(2^14),平均的分配到各master节点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值