Redis Cluster 搭建指南

Redis 集群简介

Redis支持的集群方式有3种:

  1. 主从复制(Master-Slave Replication);
  2. 哨兵模式;
  3. Redis Cluster;

今天介绍的是其中的第3种模式。Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案。该方案完全去中心化,由多个主从节点组成,所有节点彼此互联。Redis 客户端可以直接连接任何一节点获取集群中的键值对,不需要中间代理,如果该节点不存在用户所指定的键值,其内部会自动把客户端重定向到键值所在的节点。同其他分布式存储系统一样,该方案主要具备以下两个功能:

  • 数据分区
    Redis Cluster 会将用户数据分散保存至各个节点中,突破单机 Redis 内存最大存储容量。
  • 数据冗余
    由于 Redis Cluster 中的每个节点都是由主从结构组成,所以就天然继承了主从数据复制和故障恢复的特性。

源码编译安装 Redis

cd /usr/local

# 下载 Redis 源码,目前的官方稳定版本是 5.0.6,官网下载地址:https://redis.io/download
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
# 解压源码
tar -zxvf redis-5.0.6.tar.gz

# 编译安装 Redis
cd redis-5.0.6
make && make install

# 如果遇到编译失败,则根据提示安装相应的依赖和编译环境,比如安装 gcc
yum -y install gcc

# 然后清理编译结果并重新编译和安装
make distclean
make && make install

如果编译安装过程中没有出现错误,可执行文件将会在/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

根据上述规划,可以先通过如下命令创建各个节点启动配置文件的存放目录。

mkdir /usr/local/redis-cluster
cd redis-cluster
mkdir -p 7001 7002 7003

顺序执行如下行命令,进入 Redis 源码包目录并将默认配置文件redis.conf分别复制到配置存放目录中,作为各自节点启动配置文件。

cd /usr/local/redis-5.0.6
cp redis.conf /usr/local/redis-cluster/7001 
cp redis.conf /usr/local/redis-cluster/7002
cp redis.conf /usr/local/redis-cluster/7003 

接下来根据上表中我们的计划修改配置文件中的相关选项:

bind 127.0.0.1                         # 设置当前节点主机地址
port 7001                              # 设置客户端连接监听端口
daemonize yes                          # 以守护进程运行 Redis 实例
pidfile /var/run/redis_7001.pid        # 设置 Redis 实例 pid 文件
cluster-enabled yes                    # 启用集群模式
cluster-node-timeout 15000             # 设置当前节点连接超时毫秒数
cluster-config-file nodes-7001.conf    # 设置当前节点集群配置文件路径

然后是启动配置好的节点:

redis-server /usr/local/redis-cluster/7001/redis.conf
redis-server /usr/local/redis-cluster/7002/redis.conf
redis-server /usr/local/redis-cluster/7003/redis.conf

所有节点正常启动后,我们再来使用redis-cli --cluster create命令搭建 Redis Cluster:

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 搭建集群的文章,敬请期待。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇