Redis之Cluster

1、数据分布

1.1 节点取余

hash+取余:hash(key)/n(节点数),根据取余结果存储到不同的节点。

缺点:节点扩容导致较大数据迁移,翻倍扩容迁移50%左右,其他扩容迁移更大。

1.2 一致性hash

t虚拟oken(0-232)环,hash(key) 顺时针寻找就近节点存储数据

优点:节点伸缩的时候只迁移相邻节点,翻倍伸缩可以保证最小数据迁移和负载均衡。

1.3 虚拟槽分布

预设虚拟槽,每个节点映射数据槽,CRC16哈希函数,服务端管理节点、槽、数据。

2、Redis Cluster架构

主要包括:节点、meet(节点相互通信)、指派槽、复制

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

 

3、原生安装安装

3.1 配置开启节点

prort  ${port}

daemonize  yes

dir  ''/opt/redis/data/'

dbfilename  "dump-${port}.rdb"

logfile  "${port}.log"

cluster-enabled  yes

cluster-config-file  "nodes-${port}.conf"

cluster-node-timeout  15000  

cluster-require-full-coverage  yes (全部节点健康才提供服务,所有改为  no  )

3.2 meet

redis-cli  -h  ip  -p  port  cluster  meet  ip:port

3.3 指派槽

redis-cli  -h  ip  -p  port  cluster   addslots{0...5461}

3.4 主从复制

cluster  replicate  node-id(集群启动时候分配,不会根据从启动重新分配)

4、ruby安装

参考:https://www.cnblogs.com/wukc/p/13386488.html

posted @ 2020-10-15 11:55  没有如果Z  阅读(130)  评论(0编辑  收藏  举报