欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Redis3集群搭建(下)- 实操

程序员文章站 2022-05-22 07:58:35
...

Redis3集群搭建(下)- 实操

上一篇博客学习了一些Redis集群的基础知识,这篇文章将会开始学习搭建一个3主3从的小型的Redis集群。

准备

  • Redis 3.2.9
  • 一台机器,Linux或者macOS

我本机是macOS,所以这里以macOS为例。

安装

$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz
$ tar xzf
$ cd redis-3.2.9/
$ make

编译完成后,就可以启动Redis了

$ src/redis-server redis.conf

启动完成,说明Redis已经可以使用了。

配置文件

还需要准备一些配置文件供Redis集群使用,Redis集群搭建需要六个运行在Redis集群模式下的Redis实例,而不是普通的Redis实例,所以需要通过修改配置文件来让Redis实例支持集群。

$ mkdir redis-cluster
$ cd redis-cluster
$ mkdir 7000 7001 7002 7003 7004 7005

在7000-7005这几个文件夹中各创建一个redis.conf文件,文件的内容可以使用最开始解压后文件夹中的redis.conf文件,在这个基础上进行修改。需要修改如下几个配置:

port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 15000
appendonly yes
  • cluster-enabled:配置打开集群模式
  • cluster-enabled:配置保存节点配置文件的路径,默认值为nodes.conf,无需人为修改,它由Redis集群启动时创建,并在有需要时自动进行更新
  • appendonly:打开持久化

其他文件夹的配置以此类推,将可执行文件redis-server复制到redis-cluster文件夹下面,然后使用以下命令,一次在每个文件夹下面执行:

$ cd 7000
$ ../redis-server ./redis.config

搭建集群

把所有实例都运行起来之后,就可以使用这些实例开始搭建集群了,同时为每个节点编写配置文件。使用 Redis集群命令行工具redis-trib,编写节点配置文件可以变得非常简单。redis-trib.rb在Redis源码的src目录下,他是用ruby编写的,可以通过它来对Redis集群进行创建、检查、分片等工作。所以本机还需要安装配置ruby环境(ps:ruby环境配置后,需要安装Ruby的Redis接口,使用命令gem install redis)。

Ruby方式

创建集群:

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

这个命令在这里用于创建一个新的集群,–replicas 1表示为集群中的每个主节点创建一个从节点。redis-trib这时候会打印出一份预想中的配置给你看,如果觉得没有问题,输入yes,集群就开始创建了。
如下图所示,表示集群创建成功:
Redis3集群搭建(下)- 实操

create-cluster脚本

如果觉得这种方式太麻烦,也可以通过Redis源码目录下的utils/create-cluster文件夹中的create-cluster脚本创建集群。通过这个脚本可以创建一个3主3从的集群,并且端口默认从30001开始。但是通过这种方式就不能学习到那么多Redis集群的细节。
这个脚本主要有以下命令:
* create-cluster start
* create-cluster create
* create-cluster stop

测试集群

这里用redis-cli脚本进行测试,看集群是否可用。

$ ./redis-cli -c -p 7000
127.0.0.1:7000> set mykey redis
-> Redirected to slot [14687] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set hello world
-> Redirected to slot [866] located at 127.0.0.1:7000
OK
127.0.0.1:7000> get mykey
-> Redirected to slot [14687] located at 127.0.0.1:7002
"redis"
127.0.0.1:7002> get hello
-> Redirected to slot [866] located at 127.0.0.1:7000
"world"
127.0.0.1:7000>

可以看出Redis会根据key计算对应的slot,然后跳转到对应的node上去,和我们之前介绍的内容一致。

至此,一个3主3从的Redis集群就搭建完成了,接下来可能会写一篇使用Docker搭建Redis集群的文章。

参考

相关标签: Redis集群