给redis cluster集群加上认证功能
【下面以最常用的3台主机6个实例这种架构来搭建redis集群】
首先搭建并启动最基本的环境:
#node1上
redis-server /usr/local/redis_cluster/7000/redis.conf
redis-server /usr/local/redis_cluster/7001/redis.conf
#node2上
redis-server /usr/local/redis_cluster/7003/redis.conf
redis-server /usr/local/redis_cluster/7004/redis.conf
#node3上
redis-server /usr/local/redis_cluster/7006/redis.conf
redis-server /usr/local/redis_cluster/7007/redis.conf
然后在任意节点上执行创建cluster:
redis-trib.rb create --replicas 1 192.168.2.11:7000 192.168.2.11:7001 192.168.2.12:7003 192.168.2.12:7004 192.168.2.13:7006 192.168.2.13:7007
带密码认证的redis停止的脚本:
#node1上
redis-cli -h 192.168.2.11 -p 7000 -c -a abc shutdown
redis-cli -h 192.168.2.11 -p 7001 -c -a abc shutdown
#node2上
redis-cli -h 192.168.2.12 -p 7003 -c -a abc shutdown
redis-cli -h 192.168.2.12 -p 7004 -c -a abc shutdown
#node3上
redis-cli -h 192.168.2.13 -p 7006 -c -a abc shutdown
redis-cli -h 192.168.2.13 -p 7007 -c -a abc shutdown
下面是一个网上找的测试脚本 #!/bin/bash # 地址写集群里的任意的地址,注意加-c选项 REDISCLT="redis-cli -h 192.168.2.10 -p 6379 -c -n 0 set" ID=1 while [ $ID -le 50000000 ] do INSTANCE_NAME="i-2-$ID-VM" UUID=`cat /proc/sys/kernel/random/uuid` CREATED=`date "+%Y-%m-%d %H:%M:%S"` $REDISCLT vm_instance:$ID:instance_name "$INSTANCE_NAME" $REDISCLT vm_instance:$ID:uuid "$UUID" $REDISCLT vm_instance:$ID:created "$CREATED" $REDISCLT vm_instance:$INSTANCE_NAME:id "$ID" ID=`expr $ID + 1` done
测试了下,如果你写的是slave节点数据,它会自动跑到对应的master上去写数据。