主要是:
要3+3个redis才能做成redis群集(ip分别为:192.168.6.209 192.168.6.210 192.168.6.211 192.168.6.212 192.168.6.213 192.168.6.214)
每个的redis配置要开启:
cluster-enabled yes
cluster-config-file
cluster-node-timeout
注意配置bind 如果不bind则protected-mode no
然后进入192.168.6.209的redis端:redis-cli
cluster meet 192.168.6.209 6379
cluster meet 192.168.6.210 6379
cluster meet 192.168.6.211 6379
cluster meet 192.168.6.212 6379
cluster meet 192.168.6.213 6379
cluster meet 192.168.6.214 6379
然后退出redis执行:
redis-cli -h 192.168.6.209 -p 6379 cluster addslots {0..5461}
redis-cli -h 192.168.6.210 -p 6379 cluster addslots {5462..10922}
redis-cli -h 192.168.6.211 -p 6379 cluster addslots {10923..16383}
然后进入redis-cli:
cluster nodes:
ce4f7adb9fd185776ea610457811c41ebe5040dc 192.168.6.212:6379 slave 1b6fbd35939402acec48435641d4578d875379c7 0 1550072709631 1 connected
1b6fbd35939402acec48435641d4578d875379c7 192.168.6.209:6379 myself,master - 0 0 1 connected 0-5461
a6d4ba0b86ef7333d439c3c79090d06a7942f94e 192.168.6.214:6379 slave b14ea0b24b9a9596cd3a71b41ee9a012c86af942 0 1550072711636 5 connected
83b5da4e440a50eb7f4e44b40323e63530a9ffa3 192.168.6.213:6379 slave 5e19e2290a2b08c1993d21938bf97903b6f9773b 0 1550072704621 4 connected
5e19e2290a2b08c1993d21938bf97903b6f9773b 192.168.6.210:6379 master - 0 1550072705623 2 connected 5462-10922
b14ea0b24b9a9596cd3a71b41ee9a012c86af942 192.168.6.211:6379 master - 0 1550072710633 3 connected 10923-16383
然后进入要建立的从的redis 分别在212:
CLUSTER REPLICATE 1b6fbd35939402acec48435641d4578d875379c7
213下执行:
CLUSTER REPLICATE 5e19e2290a2b08c1993d21938bf97903b6f9773b
214下执行:
CLUSTER REPLICATE b14ea0b24b9a9596cd3a71b41ee9a012c86af942
常用命令:
// 集群(cluster)
CLUSTER INFO 打印集群的状态信息
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息
// 节点(node)
CLUSTER MEET <ip> <port> 将ip和port所指定的节点添加到集群当中,让它成为集群的一份子
CLUSTER FORGET <node_id> 从集群中移除node_id指定的节点
CLUSTER REPLICATE <node_id> 将当前节点设置为node_id指定节点的从节点
CLUSTER SAVECONFIG 将当前节点的配置信息手动保存到硬盘(nodes-port.conf)
CLUSTER SLAVES <master_node_id> 查询指定的master_node_id主节点有哪些从(slave)节点
// 槽(slot)
CLUSTER ADDSLOTS <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点
CLUSTER DELSLOTS <slot> [slot ...] 将一个或多个槽从当前节点移除
CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点
CLUSTER SETSLOT <slot> NODE <node_id> 将当前节点指定的槽(slot)指派给node_id指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽,然后再进行指派
CLUSTER SETSLOT <slot> MIGRATING <node_id> 将当前节点指定的槽(slot)迁移到node_id指定的节点中
CLUSTER SETSLOT <slot> IMPORTING <node_id> 从node_id指定节点中的槽(slot)导入到当前节点
CLUSTER SETSLOT <slot> STABLE 取消对当前节点指定槽(slot)的导入(import)或者迁移(migrate)
CLUSTER SLOTS 查看槽(slot)在集群中的分配情况
// 键 (key)
CLUSTER KEYSLOT <key> 计算键key应该被分配在哪个槽上
CLUSTER COUNTKEYSINSLOT <slot> 返回指定槽(slot)保存key的数量
CLUSTER GETKEYSINSLOT <slot> <count> 获取指定槽(slot)中count个key,如果指定槽中大于count个key,则只返回前cout个key,小于或为空,则返回最多数量的key