本方法记录在单机环境下,启动3个redis实例来模拟多个机器进行集群部署。
redis下载
进入redis官网https://redis.io/,下载3.2之上的版本即可。
redis解压及安装
tar -vxzf redis-x.x.x.tar.gz
cd redis-x.x.x
make && make install
cd src cp redis-trib.rb /user/local/bin/
创建redis节点
创建目录,用来存放每个节点的配置及其日志等信息。
mkdir redis_cluster
拷贝redis配置文件到不同的目录中。
mkdir 6401 6402 6403
cp redis.conf redis_cluster/6401/redis.conf
cp redis.conf redis_cluster/6402/redis.conf
cp redis.conf redis_cluster/6403/redis.conf
分别修改配置文件。
port 6401 #端口号,需要分别配置成6401 6402 6403
bind 0.0.0.0 #redis所绑定的ip地址,0.0.0.0为全网地址
daemonize yes #redis以守护进程方式后台启动
pidfile cluster/6401/redis.pid #进程pid记录文件,需要分别在6401 6402 6403三个目录中
cluster-enabled yes #开启集群模式
cluster-config-file nodes_6401.conf #集群配置文件,首次启动会自动生成,分别配置成6401 6402 6403
cluster-node-timeout 15000 #请求超时时间
appendonly yes #开启AOF日志
启动节点
redis-server redis_cluster/6401/redis.conf
redis-server redis_cluster/6402/redis.conf
redis-server redis_cluster/6403/redis.conf
至此,三个节点的redis已经启动完成,接下来需要创建redis cluster集群。
创建cluster集群
redis-trib.rb create --replicas 0 127.0.0.1:6401 127.0.0.1:6402 127.0.0.1:6403
测试
使用redis-cli可以启动后可以看到各节点状态以及set get均正常。
redis-cli -c -h 127.0.0.1 -p 6401
127.0.0.1:6401> 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:945
cluster_stats_messages_pong_sent:914
cluster_stats_messages_sent:1859
cluster_stats_messages_ping_received:909
cluster_stats_messages_pong_received:945
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:1859
127.0.0.1:6401> set test hahaha
-> Redirected to slot [6918] located at
127.0.0.1:6403
OK
127.0.0.1:6403> get test
"hahaha"