Redis集群部署配置
测试环境:服务器系统为centos6.5,redis版本为3.2.2,使用一台机器,模拟6个redis实例来创建redis集群,其中3主3从
2.修改每个目录下的redis.conf配置文件
port 7000 #端口
daemonize yes
cluster-enabled yes #开启集群模式
cluster-config-file nodes-7000.conf #集群配置文件
cluster-node-timeout 5000 #超时时间
appendonly yes
dir /rs-base/servers/redis-2.x/cluster/7000
3.分别启动实例
查看是否都已经启动成功
4.现在我们已经有了六个正在运行中的 Redis 实例, 接下来我们需要使用这些实例来创建集群, 并为每个节点编写配置文件。
通过使用 Redis 集群命令行工具redis-trib,编写节点配置文件的工作可以非常容易地完成redis-trib位于Redis 源码的src文件夹中,它是一个 Ruby 程序,这个程序通过向实例发送特殊命令来完成创建新集群,检查集群,或者对集群进行重新分片(reshared)等工作。
执行以下命令来创建集群:
/redis-trib.rb create --replicas 1 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
(注意:这个命令在redis减压后的src目录下 --replicas的参数是每个master节点分配的slave个数)
执行后提示: /usr/bin/env: ruby: No such file or directory
系统中没有安装ruby,所以报上面的错误。
先安装ruby:
[root@localhost yum.repos.d]# yum install ruby
[root@localhost yum.repos.d]# yum install rubygems
[root@localhost yum.repos.d]# gem install redis
再次创建集群:
[root@localhost src]# ./redis-trib.rb create --replicas 1 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
Redis自动选择主从
5.测试集群
在其中任意一个节点 使用redis-cli -c -p 7000, set aaa bbb
再到其他节点使用get aaa 是否可以获得value,
模拟其中一个主节点故障,杀死一个redis进程,再到其他节点使用get和set没有异常,并且它的从节点会变成主节点,
6.检查集群:通过check cluster的一个节点,就知道整个集群的状况,可以看出来谁是主,谁是从。
./redis-trib.rb check 127.0.0.1:7000
增加节点:redis-trib.rb add-node 想要的增加的ip:port 集群中已经存在的IP:port
./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
如果报这个错
需要删除你redis.conf里面cluster-config-file 所在的文件
如果打算让新节点成为 127.0.0.1:7005 的从节点, 只要用客户端连接上新节点, 然后执行以下命令:
redis 127.0.0.1:7006> cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
(id为7005的id)
用以下命令查看是否已经别成7005的从节点 (id为主节点的id)
redis-cli -p 7000 cluster nodes | grep slave | grep 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
转载于:https://blog.51cto.com/liruixin/1806320