#!/bin/bash
echo "./redis-s.sh masterip"
echo "please modify network name��ens192"
rm -rf ./redis6.2.6.tar
masterip=$1
ip=`ip addr|grep ens192|tail -1|awk '{print $2}'|awk -F'/' '{print $1}'`
echo net.core.somaxconn = 2048 >> /etc/sysctl.conf
echo vm.overcommit_memory = 1 >> /etc/sysctl.conf
sysctl -p
tar xvf ./redis6.2.6.tar
sleep 5
sed -i "s/192.168.10.165/$ip/g" ./redis01/redis.conf
sed -i "s/192.168.10.165/$ip/g" ./redis02/redis.conf
sed -i "s/192.168.10.165/$ip/g" ./redis03/redis.conf
sed -i "s/192.168.10.165/$ip/g" ./redis04/redis.conf
sed -i "s/192.168.10.165/$ip/g" ./redis05/redis.conf
sed -i "s/192.168.10.165/$ip/g" ./redis06/redis.conf
sleep 5
cd ./redis01;./redis-server ./redis.conf &
cd ./redis02;./redis-server ./redis.conf &
cd ./redis03;./redis-server ./redis.conf &
cd ./redis04;./redis-server ./redis.conf &
cd ./redis05;./redis-server ./redis.conf &
cd ./redis06;./redis-server ./redis.conf &
cp ./redis01/redis-cli /bin
sleep 5
redis-cli --cluster add-node $ip:6379 $masterip:6379
sleep 5
redis-cli --cluster add-node $ip:6380 $masterip:6379
sleep 5
redis-cli --cluster add-node $ip:6381 $masterip:6379
sleep 5
redis-cli -h $masterip -p 6379 cluster nodes|grep $masterip|grep master|awk '{print $1}' > /tmp/masterid.txt
port=6382
while read masterid
do
sleep 5
redis-cli --cluster add-node $ip:$port $masterip:6379 --cluster-slave --cluster-master-id $masterid
port=`expr $port + 1`
done < /tmp/masterid.txt
sleep 5
redis-cli -h $ip -p 6379 cluster nodes|grep $ip|grep master|awk '{print $1}' > /tmp/newmasterid.txt
while read newmasterid
do
sleep 5
echo all|redis-cli --cluster reshard $ip:6379 --cluster-slots 1024 --cluster-to $newmasterid --cluster-yes
done < /tmp/newmasterid.txt