How to deploy redis cluster


本文介绍如何通过源码部署redis cluster。

Redis Cluster的特点

搭建过程

安装 Redis

Redis Cluster 的搭建有多种方法,这里采用源代码的方式部署,因为 Redis 的源代码中提供了特定的工具来部署,用起来比较方便。

首先到官方网站下载源代码并进行编译。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ wget http://download.redis.io/releases/redis-4.0.2.tar.gz
$ tar xvf redis-4.0.2.tar.gz
$ cd redis-4.0.2

# 先编译依赖库
$ cd deps
$ make hiredis lua jemalloc linenoise

# 再编译 redis
$ cd ../
$ make

编译完成后,输出部分会提示我们运行make test

1
2
3
4
5
Hint: It's a good idea to run 'make test' ;)

make[1]: Leaving directory '/root/download/redis-4.0.2/src'

$ make test

make test 可能会需要一些依赖,如tclrubyredis(ruby library)

1
$ yum install tcl

安装 ruby ,因为 redis 库要ruby 2.2.2版本之后才支持,而 Centos 的默认 ruby 版本是2.0.0所以我们可能需要通过其他方式安装 ruby 。

1
2
3
4
5
6
7
8
9
# 更新内容请到 rvm 官网查看
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$ \curl -sSL https://get.rvm.io | bash -s stable
$ rvm install 2.4.2

# 更新 gems 源
$ yum install rubygems
$ gem sources -r https://rubygems.org/
$ gem sources -a https://ruby.taobao.org

通过 ruby 安装 redis 库

1
$ gem install redis

然后运行make test看有无错误,并进行安装

1
2
$ make test
$ make install

部署 Redis Cluster

首先部署 Redis

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
$ cd utils
$ ./install_server.sh 
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 7788
Please select the redis config file name [/etc/redis/7788.conf] 
Selected default - /etc/redis/7788.conf
Please select the redis log file name [/var/log/redis_7788.log] 
Selected default - /var/log/redis_7788.log
Please select the data directory for this instance [/var/lib/redis/7788] 
Selected default - /var/lib/redis/7788
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 7788
Config file    : /etc/redis/7788.conf
Log file       : /var/log/redis_7788.log
Data dir       : /var/lib/redis/7788
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.

在部署了多个 Redis Server 之后我们需要依次修改/etc/redis/7788.conf使其开启cluster功能。

1
2
# 打开 /etc/redis/7788.conf ,去掉 cluster-enabled yes 之前的注释符
cluster-enabled yes

修改完毕后依次通过/etc/init.d/redis_7788等命令启动Redis Server

1
for i in 88 99 00 ; do /etc/init.d/redis_77${i} start; done

完成之后可以通过redis-cli稍作测试,确定没有问题之后部署Redis Cluster集群

1
2
$ yum install redis-trib
$ redis-trib create 127.0.0.1:7788 127.0.0.1:7799 127.0.0.1:7700

搭建完毕