linux下redis cluster部署

Life is short , play more!
本文来自lihao's Blog,转载请注明。

git clone https://github.com/antirez/redis.git
cd redis
make
make test
file ./src/redis-server
mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005

#同样的方法,在7001,7002,7003,7004,7005 里创建 redis.conf. 记住redis.conf 里面的port 需要分别改成 7001,7002,7003,7004,7005
cat > 7000/redis.conf <
#同样的方法,在7001,7002,7003,7004,7005 里创建 redis.conf. 记住redis.conf 里面的port 需要分别改成 7001,7002,7003,7004,7005
#备注: 如果我们使用replicas=1的话, 需要最少6个节点。即7000-7005 6个nodes。 其中最少需要3个master 节点。如果replicas=0 的话, 只需要3个节点是可以部署的。
#开启6个tab ssh 登录。 分别 cd 7000,7001,7002,7003,7004,7005

#../../src/redis-server redis.conf (6个窗口分别执行该命令)
我们在每个节点启动时看到可以看到如下的日志
[82462] 26 Nov 11:56:55.329 * No cluster configuration found, I'm 97a3a64667477371c4479320d683e4c8db5858b1

#6个node 节点都运行起来了,我们现在创建集群,这里使用redis-cli

cd 到redis目录。
./src/redis-cli --cluster create 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 \
--cluster-replicas 1

注意: 这里创建cluster的时候有个坑, 环境中搭建redis cluster时(非本地测试使用)ip地址请一定写成真实的局域网可访问的地址, 而不要写成 127.0.0.1. 因为redis cluster 客户端(如jedis cluster带连接池)访问时,会链接服务器后,尝试获取所有cluster 的node节点,并建立链接。 如果配置了127.0.0.1,获取到的节点均是localhost, 这样非本机进行访问时会提示网络错误。

日志如下,就提示创建成功了
[OK] All 16384 slots covered


./src/redis-cli -p 7000
> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:1
cluster_stats_messages_ping_sent:23980
cluster_stats_messages_pong_sent:23494
cluster_stats_messages_fail_sent:1
cluster_stats_messages_sent:47475
cluster_stats_messages_ping_received:23494
cluster_stats_messages_pong_received:23671
cluster_stats_messages_fail_received:1
cluster_stats_messages_received:47166

现在我们通过cluster info命令查询到cluster的一些信息。
此时我们的redis cluster 就部署成功了。 剩下的是一些配置文件的修改和优化。


发表评论

电子邮件地址不会被公开。 必填项已用*标注