redis集群部署
下载redis源码,官网有提供下载
wget http://download.redis.io/releases/redis-5.0.7.tar.gz tar xzf redis-5.0.7.tar.gz cd redis-5.0.7 #编译 make #安装到/usr/local/bin下 make install
准备配置文件,这里通过一台主机不同端口进行模拟,多设备安装方法一致(确保不同的设备直接可以互访)
先创建目录,可按自己实际需求进行创建
mkdir -p /usr/local/redis/cluster mkdir 71001 . . . mkdir 7006
创建配置文件,以7001为例,其他的对应修改即可
/usr/local/redis/cluster/7001/redis.conf
#端口 port 7001 #绑定的IP,多机部署的时候,注意配置该地址,如果是127.0.0.1将会连不上,需要配置为内网地址 bind 127.0.0.1 #数据存放的目录,注意启动服务前,先创建好该目录 dir /usr/local/redis/cluster/7001/data #后台运行 daemonize yes #开启集群 cluster-enabled yes #集群的配置文件 cluster-config-file node7001.conf #AOF方式追加刷盘 appendonly yes #外网是否可以访问,默认是yes,如果配置了no,那么bind不绑定出了127.0.0.1,其他ip依然可以访问 protected-mode no #当前节点的密码 requirepass hunter #主节点的密码 masterauth hunter #日志,默认是不开启日志 logfile /usr/local/redis/cluster/7001/logs.log
分别启动六个节点的服务
redis-server /usr/local/redis/cluster/7001/redis.conf . . . redis-server /usr/local/redis/cluster/7006/redis.conf
启动完成后,查看日志,确保服务已经成功启动,也可以直接用客户端连接测试是否正常
redis-cli -a hunter -p 7001 -h 127.0.0.1
确保启动正常,开始创建集群,注意,用redis-trib.rb创建的方式已经废弃。
redis-cli -a hunter --cluster create 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 127.0.0.1:7006 --cluster-replicas 1
说明一下
--cluster-replicas 1
一共六个节点,值为1,代码每个主节点分配1个从节点,三主三从
注意该参数放在最后,否正会出现
Trying to optimize slaves allocation for anti-affinity [WARNING] Some slaves are in the same host as their master
大概率出现一直等待节点加入集群,集群创建失败的情况
如果出现该问题,分别登录节点,执行cluster reset,重新创建集群。
创建完成后连接到任意一个主节点查看集群信息
cluster info
可以看到下面的信息,完成。
cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:2917 cluster_stats_messages_pong_sent:3162 cluster_stats_messages_sent:6079 cluster_stats_messages_ping_received:3157 cluster_stats_messages_pong_received:2917 cluster_stats_messages_meet_received:5 cluster_stats_messages_received:6079