固定链接 在滴滴云上搭建 Redis-Cluster 集群

在滴滴云上搭建 Redis-Cluster 集群

在滴滴云上搭建 Redis-Cluster 集群

Redis-Cluster 简介

Redis 官方在 3.0 版本以后推出了 Redis-Cluster 集群版,该版本能够解决单机版 Redis 无法水平伸缩的问题,并提供去中心化、高可用的 Redis 集群服务的能力。

Redis-Custer 主要提供以下功能:

  • 数据自动分片的能力
  • 当集群部分节点故障或者无法与其它节点通讯的情况下,集群整体能够正常提供服务的能力

本文将主要介绍在滴滴云服务器上搭建 Redis-Cluster 的方法。

集群配置

  • 1核 1G 云服务器,搭配 40G 系统盘 + 20G 数据云盘 * 3 台(此为测试使用的最小集群规模。生产环境下,建议集群整体最小核数>=集群实例数,单个 Redis 实例内存建议不超过 8G)
  • 操作系统:Linux CentOS 7.4
  • 建议将 Redis 持久化文件及日志文件挂载到 SSD 云盘中,以避免物理磁盘损坏的情况下 Redis 数据丢失

集群主从规划

Redis-Cluster 的每个实例支持一主多从。在生产环境下,一般给每个实例配置一主一从,并将每个主从分散到不同的主机上,这样可以最大程度避免单点故障对集群造成的影响。

以下是我们在3台主机的情况下,配置 3 主 3 从的集群规划:

  1. server1:7000(主)-> server2:7004(从)
  2. server2:7001(主)-> server3:7005(从)
  3. server3:7002(主)-> server1:7003(从)

下文中 server1server2server3 指代每台云主机的内网 IP。

集群安装

下载并安装 Redis 默认版本

(如需指定版本安装,可以从 Redis.io 官网下载)

下载并安装 Redis 集群管理工具 Redis-trib

Redis-trib 是 Redis 官方提供的 Redis 集群管理工具,它可以提供创建集群、增加节点、数据迁移等功能。

优化系统参数

目录规划

我们将 Redis 的配置文件和数据文件放到提前挂载好的 EBS 云盘中去(云盘挂载方式请参考挂载云盘),以保障数据的高可靠性。本文中云盘挂载到 /data 目录下。

通过 mkdir 命令,分别在三台云主机上创建以下目录:

制作集群配置模板

先制作一个 redis.conf 的集群模板,然后只要根据不同 IP、端口替换模板即可得到每个 Redis 实例的配置文件:

注意:bind 一行我们强烈建议不要绑定外网 IP,只绑定内网 IP,否则会有安全风险。

生成实际配置

生成每个实例的 redis.conf 实际配置:

将每个 Redis 实例的配置进行替换:

集群启动

启动每个 Redis-server 实例

建立集群

为了避免主节点和从节点分配在同一台机器上,我们需要先把主节点组成一个集群,再用不同机器的实例作为从节点挂载主节点:

总结

我们在滴滴云环境上,安装了 Redis 实例,并对每台云主机进行了系统参数优化;通过统一的模板进行 Redis 实例配置;并在主从打散的前提下,成功创建了 3 主 3 从的 Redis 集群;最后对集群每个实例进行的读写性能测试。

本文作者:高嵩

您的留言将激励我们越做越好