新建redis文件夹
mkdir /usr/local/redis
下载redist文件夹
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
解压
tar -zxvf redis-5.0.5.tar.gz
编译
make install
cp -r /usr/local/redis/redis-5.0.5 /usr/local/redis/7001
vi /usr/local/redis/7001/redis.conf
# 只能通过本ip 访问访问本实例 bind 127.0.0.1
#端口号 port 7001
# 是否以守护进程启动 daemonize yes
# dbfilename文件存放目录。必须是一个目录,aof文件也会保存到该目录下。 dir /usr/local/redis/7001
# 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis_7001.pid
# 是否开启cluster集群模式 cluster-enabled yes
# 配置redis自动生成的集群配置文件名。确保同一系统中运行的各redis实例该配置文件不要重名 cluster-config-file nodes-7001.conf
# 集群节点超时毫秒数 cluster-node-timeout 15000
# 如果数据太旧,集群中的不可用master的slave节点会避免成为备用master。如果slave和master失联时间超过:(node-timeout * slave-validity-factor) + repl-ping-slave-period则不会被提升为master。 # 如node-timeout为30秒,slave-validity-factor为10, 默认default repl-ping-slave-period为10秒,失联时间超过310秒slave就不会成为master。 # 较大的slave-validity-factor值可能允许包含过旧数据的slave成为master,同时较小的值可能会阻止集群选举出新master cluster-replica-validity-factor 10
# 只有在之前master有其它指定数量的工作状态下的slave节点时,slave节点才能提升为master。默认为1(即该集群至少有3个节点,1 master+2 slaves,master宕机,仍有另外1个slave的情况下其中1个slave可以提升) # 测试环境可设置为0,生成环境中至少设置为1 cluster-migration-barrier 1
#默认情况下如果redis集群如果检测到至少有1个hash slot不可用,集群将停止查询数据。 #如果所有slot恢复则集群自动恢复。 #如果需要集群部分可用情况下仍可提供查询服务,设置为no。 cluster-require-full-coverage no
# 选项设置为yes时,会阻止replicas尝试对其master在主故障期间进行故障转移 # 然而,master仍然可以执行手动故障转移,如果强制这样做的话 # cluster-replica-no-failover no
分别执行 批量修改并替换掉 该文件夹下面的redis.conf 文件 (注意7002 - 7006 都要修改)
sed 's/7001/7002/g' redis.conf > /usr/local/redis/7002/redis.conf
分别启动六台redis
/usr/local/bin/redis-server /usr/local/redis/7001/redis.conf
查看帮助
/usr/local/bin/redis-cli --cluster help
创建集群
redis-cli --cluster create 192.168.209.129:7001 192.168.209.129:7002 192.168.209.129:7003 192.168.209.129:7004 192.168.209.129:7005 192.168.209.129:7006 --cluster-replicas 1
/usr/local/bin/redis-cli --cluster check 192.168.209.129:7001
测试集群
/usr/local/bin/redis-cli -c -h 192.168.209.129 -p 7001
192.168.209.129:7002> set name xiaoming OK 192.168.209.129:7002> get name "xiaoming" 192.168.209.129:7002>
切换到 7005 192.168.209.129:7005> get name -> Redirected to slot [5798] located at 192.168.209.129:7002 "xiaoming" 192.168.209.129:7002>