Redis分片集群的搭建


Redis分片集群的原理

Redis

Redis从3.0版本开始加入了Cluster集群模式,实现了Redis的分布式存储,每台Redis节点服务器存储不同的数据。Cluster模式是为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器,内存和QPS不再受限于单机。Cluster是一种服务器数据分片技术(分片和路由都是在服务端实现),采用多主多从,每个分区都是由一个Redis主机和多个从机组成,片区和片区之间是互相平行的。Redis Cluster集群采用P2P模式,完全去中心化。

Redis Cluster采用虚拟哈希槽分区而非一致性hash算法,预先分配一些卡槽,所有的键根据哈希函数映射到这些槽内,每一个分区内的master节点负责维护一部分槽以及槽所映射的键值数据。

Redis分片集群的搭建

集群环境准备

1、六台Redis3节点服务器,用来实现三主三从的Redis分片集群。

  • Redis1:节点服务器,IP地址为192.168.238.71。
  • Redis2:节点服务器,IP地址为192.168.238.72。
  • Redis3:节点服务器,IP地址为192.168.238.73。
  • Redis4:节点服务器,IP地址为192.168.238.74。
  • Redis5:节点服务器,IP地址为192.168.238.75。
  • Redis6:节点服务器,IP地址为192.168.238.76。

2、开放所有节点的6379和16379端口,redis端口加10000为集群通信端口。

Redis

3、在任意一台节点服务器安装ruby环境并下载搭建集群使用的ruby命令。

3.1、安装ruby环境和redis接口读写的依赖包。

Redis

3.2、搭建集群使用的ruby命令在Redis源码包中,所以需要先下载Redis3源码包。

Redis

3.3、解压Redis3源码包。

Redis

分片集群的配置

1、修改三台哨兵服务器的IP地址绑定、关闭保护模式并配置集群参数,主要配置项如下:

  • bind:只允许绑定的IP地址连接。
  • protected-mode:保护模式,默认为yes。
  • cluster-enabled:是否启用集群模式。
  • cluster-config-file:集群配置文件,由系统自动维护。
  • cluster-node-timeout:节点通信超时时间。

1.1、将bind 127.0.0.1修改为bind 0.0.0.0,允许任意的主机连接。

Redis

1.2、将protected-mode yes修改为protected-mode no,关闭保护模式。

Redis

1.3、新增集群相关配置。

Redis

1.4、查看配置文件。

1.4.1、查看配置文件头部修改内容。

Redis

1.4.2、查看配置文件尾部新增内容。

Redis

2、配置完毕,重启Redis服务。

Redis

3、创建Redis分片集群。

3.1、使用源代码中的ruby脚本redis-trib.rb创建Redis集群,主要参数如下:

  • create:创建集群。
  • −−replicas 1:集群主从机数量比值,1表示主从机数量比值为1:1。
Redis

3.2、系统输出主从节点分配方案,输入yes确认。

Redis

3.3、最后输出插槽分配方案。

Redis

4、从任意节点服务器登录,查看集群状态。登录时需使用−c参数,表示登录集群。

4.1、登录任意节点服务器,查看集群信息。

Redis

4.2、登录任意节点服务器,查看节点信息。

Redis

分片集群的测试

1、从任意节点服务器登录并输入数据,集群能够根据哈希槽自动切换至对应节点服务器。

Redis

2、读取数据,同样集群也能够根据哈希槽自动切换至对应节点服务器。

Redis

发表评论

评论数量:0