Linux 搭建分布式缓存Redis集群【Cluster】

本文详细介绍了如何在Linux环境中手动和自动搭建Redis Cluster,包括Redis集群的基本概念、数据分区和数据冗余原理,以及从下载安装Redis到启动节点、节点握手、分配槽位和设置主从复制的步骤。在生产环境中,推荐使用官方提供的集群管理工具快速搭建。
摘要由CSDN通过智能技术生成


Redis 集群简介

Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案。完全去中心化,由多个节点组成,所有节点彼此互联。Redis 客户端可以直接连接任何一节点获取集群中的键值对,不需要中间代理,如果该节点不存在用户所指定的键值,其内部会自动把客户端重定向到键值所在的节点。

Redis 集群是一个网状结构,每个节点都通过 TCP 连接跟其他每个节点连接。在一个有 N 个节点的集群中,每个节点都有 N-1 个流出的 TCP 连接,和 N-1 个流入的连接,这些 TCP 连接会永久保持。
在这里插入图片描述
Redis Cluster 同其他分布式存储系统一样,主要具备以下两个功能

  • 数据分区
    Redis 集群会将用户数据分散保存至各个节点中,突破单机 Redis 内存最大存储容量。集群引入了 哈希槽slot的概念,其搭建完成后会生 16384 个哈希槽slot,同时会根据节点的数量大致均等的将 16384 个哈希槽映射到不同的节点上。当用户存储key-value时,集群会先对key进行 CRC16 校验然后对 16384 取模来决定key-value放置哪个槽,从而实现自动分割数据到不同的节点上。
  • 数据冗余
    Redis 集群支持主从复制和故障恢复。集群使用了主从复制模型,每个主节点master应至少有一个从节点slave。假设某个主节点故障,其所有从节点会广播一个数据包给集群里的其他主节点来请求选票,一旦某个从节点收到了大多数主节点的回应,那么它就赢得了选举,被推选为主节点,负责处理之前旧的主节点负责的哈希槽。

关于 Redis Cluster 详细介绍以及实现原理请参见 Redis Cluster 教程 和 Redis Cluster 规范,在此不再赘述。

https://redis.io/topics/cluster-tutorial
https://redis.io/topics/cluster-spec


下载 & 安装 Redis (单机)

实验环境信息:
Linux 版本:CentOS Linux release 7.9.2009
Redis 版本:5.0.9

先在服务器或虚拟机中安装一个单机 Redis,如果已安装可以跳过本节,未安装过的正好学习下。

进入 Redis 待安装目录。

cd /usr/local

下载、解压 Redis 源代码压缩包

wget http://download.redis.io/releases/redis-5.0.9.tar.gz
tar -zxvf redis-5.0.9.tar.gz

然后进入解压后的目录并使用 make 命令执行编译安装 Redis。

cd redis-5.0.9
make && make install

不要高兴,因为你极有可能会遇到因为 GCC 编译器未安装导致编译失败的情况。不要着急,请顺序执行如下命令。

yum -y install gcc
make distclean 
make && make install

Redis 基于 C 语言开发,故编译源码需要 GCC(Linux下的一个编译器,这里需要用来编译.c文件)的支持。如机器上未安装需要先执行命令yum -y install gcc安装 GCC 编译工具,然后make distclean清除之前生成的文件,最后make && make install重新编译安装。

最终出现类似下文输出则表示 Redis 安装成功。
在这里插入图片描述
如果源码编译无误且执行结果正确,make install命令会将程序安装至系统预设的可执行文件存放路径,一般是/usr/local/bin目录,可以通过如下终端输出确认。当然,也可以使用make install PREFIX= 命令安装到指定路径。

[root@localhost redis-5.0.9]# cd /usr/local/bin
[root@localhost bin]# ll
总用量 32772
-rwxr-xr-x. 1 root root 4367088 6月  16 16:53 redis-benchmark
-rwxr-xr-x. 1 root root 8125392 6月  16 16:53 redis-check-aof
-rwxr-xr-x. 1 root root 8125392 6月  16 16:53 redis-check-rdb
-rwxr-xr-x. 1 root root 4808080 6月  16 16:53 redis-cli
lrwxrwxrwx. 1 root root      12 6月  16 16:53 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 8125392 6月  16 16:53 redis-server

至此,单机 Redis 安装完成


搭建 Redis 集群

依据 Redis Cluster 内部故障转移实现原理,Redis 集群至少需要 3 个主节点,而每个主节点至少有 1 从节点,因此搭建一个集群至少包含 6 个节点,三主三从,并且分别部署在不同机器上。

目前 Redis Cluster 的搭建有

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值