Redis Cluster 搭建指南
Redis 集群简介
Redis支持的集群方式有3种:
- 主从复制(Master-Slave Replication);
- 哨兵模式;
- Redis Cluster;
今天介绍的是其中的第3种模式。Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案。该方案完全去中心化,由多个主从节点组成,所有节点彼此互联。Redis 客户端可以直接连接任何一节点获取集群中的键值对,不需要中间代理,如果该节点不存在用户所指定的键值,其内部会自动把客户端重定向到键值所在的节点。同其他分布式存储系统一样,该方案主要具备以下两个功能:
- 数据分区
Redis Cluster 会将用户数据分散保存至各个节点中,突破单机 Redis 内存最大存储容量。 - 数据冗余
由于 Redis Cluster 中的每个节点都是由主从结构组成,所以就天然继承了主从数据复制和故障恢复的特性。
源码编译安装 Redis
1 | cd /usr/local |
如果编译安装过程中没有出现错误,可执行文件将会在/usr/local/bin目录下。
搭建 Redis 集群
根据 Redis 的官方文档指出(Redis cluster tutorial),要正常使用 Redis Cluster 至少需要3个主节点(master node),而为了保证生产系统的高可用性和数据完整性,还是建议使用至少3主3从的节点来搭建 Redis Cluster。
本文将使用3主节点配置来演示集群的搭建,而且由于环境的限制,所有操作将在单机上操作。
Redis 单主节点配置如下表所示:
节点编号 | IP地址 | 侦听端口 | 配置文件路径 |
---|---|---|---|
A | 127.0.0.1 | 7001 | /usr/local/redis-cluster/7001/redis.conf |
B | 127.0.0.1 | 7002 | /usr/local/redis-cluster/7002/redis.conf |
C | 127.0.0.1 | 7003 | /usr/local/redis-cluster/7003/redis.conf |
根据上述规划,可以先通过如下命令创建各个节点启动配置文件的存放目录。
1 | mkdir /usr/local/redis-cluster |
顺序执行如下行命令,进入 Redis 源码包目录并将默认配置文件redis.conf
分别复制到配置存放目录中,作为各自节点启动配置文件。
1 | cd /usr/local/redis-5.0.6 |
接下来根据上表中我们的计划修改配置文件中的相关选项:
1 | bind 127.0.0.1 # 设置当前节点主机地址 |
然后是启动配置好的节点:
1 | redis-server /usr/local/redis-cluster/7001/redis.conf |
所有节点正常启动后,我们再来使用redis-cli --cluster create
命令搭建 Redis Cluster:
1 | redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 |
如果使用主从结构来搭建 Redis Cluster,则需要使用--cluster-replicas X
参数来指定每个主节点对应的从节点个数,否则上述命令中的所有节点均为主节点。
以上就本文的所有内容,部分参考了《分布式缓存 Redis 集群搭建》这篇博文。有机会的话还会再写一篇基于 Docker 搭建集群的文章,敬请期待。