redis(5)cluster

291 阅读1分钟

哈希分布

数据分散度高,键值分布业务无关

  • 节点取余                     注意节点伸缩时候的处理      //客户端分片
  • 一致性哈希取余           数据漂移,就近影响改动     //客户端分片,一般节点比较多的地方
  • 虚拟槽分区                   0-16383                            //服务端管理槽、节点、数据

顺序分布

数据分散度易倾斜

键值业务相关



集群搭建

  1. 节点 
  2. meet
  3. 指派槽
  4. 复制

特性:复制、高可用、分片

安装配置

1、原生命令

step1

port ${port}
daemonize yes
dir "/data"
dbfilename "dump-${port}.rdb"
logfile "${port}.log"
cluster-enabled yes
cluster-config-file nodes-${port}.conf
cluster-node-timeout 15000
cluster-config-file "nodes.conf"
cluster-require-full-coverage yes         //改为no,表示有一个节点坏掉,整个集群都不能用了

step2

redis-server redis-7000.conf 

step3

cluster meet ip port
eg :redis-cli -h 127.0.0.1 -9 7000 cluster meet 127.0.0.1 7001 

分配槽

cluster addslots slot [slot...]
eg:
redis-cli -h 127.0.0.1 -p 7000 cluster addslots {0...5461}
redis-cli -h 127.0.0.1 -p 7001 cluster addslots {5462...10922}

设置主从

cluster replicate node-id
eg:
redis-cli -h 127.0.0.1 -p 7003 cluster replicate ${node-id-7000}

2、官方工具