Redis集群搭建

Redis 集群搭建

一、Redis Cluster(Redis 集群)简介

redis 是一个开源的 key value 存储系统,受到了广大互联网公司的青睐。redis3.0 版本之前只支持单例模式,在 3.0 版本及以后才支持集群,我这里用的是 redis3.0.0 版本;

redis 集群采用 P2P 模式,是完全去中心化的,不存在中心节点或者代理节点;

redis 集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点是相互通信的(PING-PONG 机制),每个节点都是一个 redis 实例。

二、集群搭建需要的环境

1、 Redis 集群至少需要 3 个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以 2 个节点无法构成集群。

2、 要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以 Redis 集群至少需要 6 台服务器。因为我没有那么多服务器,也启动不了那么多虚拟机,所在这里搭建的是伪分布式集群,即一台服务器虚拟运行 6 个 redis 实例,修改端口号为(7001-7006),当然实际生产环境的 Redis 集群搭建和这里是一样的。

3、 安装 ruby

三、集群搭建具体步骤如下(注意要关闭防火墙)

1、 在 usr/local 目录下新建 redis-cluster 目录,用于存放集群节点

2、 把 redis 目录下的 bin 目录下的所有文件复制到/usr/local/redis-cluster/redis01 目录下,不用担心这里没有 redis01 目录,会自动创建的。操作命令如下(注意当前所在路径):

cp -r redis/bin/ redis-cluster/redis01

3、 删除 redis01 目录下的快照文件 dump.rdb,并且修改该目录下的 redis.cnf 文件,具体修改两处地方:一是端口号修改为 7001,二是开启集群创建模式,打开注释即可。分别如下图所示:

删除 dump.rdb 文件

修改端口号为 7001,默认是 6379

将 cluster-enabled yes 的注释打开

4、 将 redis-cluster/redis01 文件复制 5 份到 redis-cluster 目录下(redis02-redis06),创建 6 个 redis 实例,模拟 Redis 集群的 6 个节点。然后将其余 5 个文件下的 redis.conf 里面的端口号分别修改为 7002-7006。分别如下图所示:

创建 redis02-06 目录

分别修改 redis.conf 文件端口号为 7002-7006

5、 接着启动所有 redis 节点,由于一个一个启动太麻烦了,所以在这里创建一个批量启动 redis 节点的脚本文件,命令为 start-all.sh,文件内容如下:

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

6、 创建好启动脚本文件之后,需要修改该脚本的权限,使之能够执行,指令如下:

chmod +x start-all.sh

7、 执行 start-all.sh 脚本,启动 6 个 redis 节点

8、 至此 6 个 redis 节点启动成功,接下来正式开启搭建集群,以上都是准备条件。大家不要觉得图片多看起来冗长所以觉得麻烦,其实以上步骤也就一句话的事情:创建 6 个 redis 实例并启动。

要搭建集群的话,需要使用一个工具,这个工具在 redis 解压文件的源代码里。因为这个工具是一个 ruby 脚本文件,所以这个工具的运行需要 ruby 的运行环境,就相当于 java 语言的运行需要在 jvm 上。所以需要安装 ruby,指令如下:

yum install ruby

然后需要把 ruby 相关的包安装到服务器,我这里用的是 redis-3.0.0.gem,大家需要注意的是:redis 的版本和 ruby 包的版本最好保持一致。

将 Ruby 包安装到服务器:需要先下载再安装,如图

安装命令如下:

gem install redis-3.0.0.gem

9、 上一步中已经把 ruby 工具所需要的运行环境和 ruby 包安装好了,接下来需要把这个 ruby 脚本工具复制到 usr/local/redis-cluster 目录下。那么这个 ruby 脚本工具在哪里呢?之前提到过,在 redis 解压文件的源代码里,即 redis/src 目录下的 redis-trib.rb 文件。

10、 将该 ruby 工具(redis-trib.rb)复制到 redis-cluster 目录下,指令如下:

cp redis-trib.rb /usr/local/redis-cluster

然后使用该脚本文件搭建集群,指令如下:

./redis-trib.rb create –replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006

注意:此处大家应该根据自己的服务器 ip 输入对应的 ip 地址!

中途有个地方需要手动输入 yes 即可

至此,Redi 集群搭建成功!

11、 最后连接集群节点,连接任意一个即可:

redis01/redis-cli -p 7001 -c

注意:一定要加上-c,不然节点之间是无法自动跳转的!

本文来自:Java 培训课程之 Redis 集群搭建

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...