redis 集群的搭建

来源:互联网 发布:epic抢票软件 编辑:程序博客网 时间:2024/06/05 22:53

上次说了Redis的修改配置文件和启动问题,今天就来讲讲Redis的集群搭建。
直接进入主题,开启各个节点的redis。

redis-server $REDIS_HOME/etc/redis.conf

开启之后各个节点都不认识,不是集群模式。可以输入命令查看。这里就不查看了,直接按着步骤走就行了。
在主节点输入就行了,不行的话,各节点都来一次,

redis-cli -h 192.168.12.13 -p 6379192.168.12.13:6379> cluster meet 192.168.12.14 6379ok192.168.12.13:6379> cluster meet 192.168.12.15 6379ok

接下来就要给各节点分配slots了,slots总数为16384,我这平均分配的,送上脚本如下,在能识别命令的环境下执行。分配slots最好在各自节点进行。
cat redis_slots.sh

#!/bin/shstart_slots=0end_slots=5461i=${start_slots}while [ $i -le $end_slots ]do        redis-cli -h 192.168.12.13 -p 6379 cluster addslots ${i} >/dev/null 2>&1 &        i=$(($i+1))done

同理:

#!/bin/shstart_slots=5462end_slots=10921i=${start_slots}while [ $i -le $end_slots ]do        redis-cli -h 192.168.12.14 -p 6379 cluster addslots ${i} >/dev/null 2>&1 &        i=$(($i+1))done 

还剩一个节点:

#!/bin/shstart_slots=10922end_slots=16383i=${start_slots}while [ $i -le $end_slots ]do        redis-cli -h 192.168.12.15 -p 6379 cluster addslots ${i} >/dev/null 2>&1 &        i=$(($i+1))done

好的,这就做完了。再检查一下:

192.168.12.13:6379> cluster infocluster_state:okcluster_slots_assigned:16384cluster_slots_ok:16384cluster_slots_pfail:0cluster_slots_fail:0cluster_known_nodes:3cluster_size:3cluster_current_epoch:2cluster_my_epoch:2cluster_stats_messages_sent:3035cluster_stats_messages_received:2705
192.168.12.13:6379> cluster nodesb2f481cecfdcf6ef13362f26761ddd60ab15eb8e 192.168.12.15:6379 master - 0 1492686120056 0 connected 10922-163834b2a06221408bb5a6cfea3b706f28cd0be607949 192.168.12.13:6379 myself,master - 0 0 2 connected 0-54613b4500a174b74561691f6023185481a93bf0a332 192.168.12.14:6379 master - 0 1492686119053 1 connected 5462-10921

大功告成!集群搭建完毕,还送个小技巧,输入key-value的时候:

192.168.12.13:6379> set zz haizeiwang(error) MOVED 14415 192.168.12.15:6379192.168.12.13:6379> get zz (error) MOVED 14415 192.168.12.15:6379192.168.12.13:6379> get o(error) MOVED 7497 192.168.12.14:6379

注意到没?当你在192.168.12.13节点set zz 的时候,它会提示你key-value应该去192.168.12.15节点上去set,因为13分配的slots靠前(0-5461),而192.168.12.15节点分配的slots靠后(10922-16383),说明已经很明显(也不完全是这样的,一种推测而已,仅供参考)
字母顺序:a、b、,,,,、x、z。首字母(zz)排后。就直接去192.168.12.15节点,如下:

192.168.12.15:6379> set zz haizeiwangOK192.168.12.15:6379> 

以上仅供参考哈,多多指教。

1 0
原创粉丝点击