linux安装redis集群全流程

背景:

操作系统:centos

1. 下载redis安装包

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

2. 解压缩redis包

tar zxvf redis-4.0.10.tar.gz

3. 进入安装目录

cd redis-4.0.10

4. 进行编译

make

编译过程中,发现 gcc 未安装

 需要临时安装 GCC

4.1. 使用 yum 安装 GCC

yum install gcc-c++ -y

可使用命令查看安装的 gcc 版本

再次执行 make 命令进行编译即可。

5. make 完成之后,会在src目录下生成 redis的服务程序 redis-server,以及用于测试的客户端程序 redis-cli,使用 redis-server 启动 redis 服务

cd src
./redis-server

如下所示:

配置集群

6. 创建集群文件夹,命名为 cluster

mkdir cluster
cd cluster

在cluster目录里创建6个文件夹,以redis集群的实例端口号为名称,数据存放在 端口号/data 文件夹中

mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data

在cluster目录里创建bin文件夹,用来存放集群运行脚本,并把安装好的redis的src目录下的运行脚本拷贝到bin目录下,涉及到的脚本为:

mkreleasehdr.sh,redis-benchmark,redis-check-aof,redis-cli,redis-server,redis-trib.rb,
命令如下所示:

cp /data/redis/redis-4.0.10/src/{mkreleasehdr.sh,redis-benchmark,redis-check-aof,redis-cli,redis-server,redis-trib.rb} .

 从已经安装好的redis中复制一个新的redis实例到9001-9006文件夹,并修改 redis.conf 配置

cp -r /data/redis/redis-4.0.10/* /data/redis/cluster/9002/

修改redis.conf 配置和单点redis唯一区别如下:

port 9001(每个节点的端口号)
daemonize yes
bind 10.101.96.18(绑定当前机器 IP)
dir /data/redis/cluster/9001/data/(数据文件存放位置)
pidfile /var/run/redis_9001.pid(pid 9001和port要对应)
cluster-enabled yes(启动集群模式)
cluster-config-file nodes_9001.conf(9001和port要对应)
cluster-node-timeout 15000
appendonly yes

7. 进入/data/redis/bin目录,依次执行以下命令,启动集群中的各个redis实例

./redis-server /data/redis/cluster/9001/redis.conf
./redis-server /data/redis/cluster/9002/redis.conf
./redis-server /data/redis/cluster/9003/redis.conf
./redis-server /data/redis/cluster/9004/redis.conf
./redis-server /data/redis/cluster/9005/redis.conf
./redis-server /data/redis/cluster/9006/redis.conf

检查一下redis进程,确认是否都正常启动

ps -el | grep redis

随便找一个实例,进行读写测试

[root@gpap-prod-3 bin]# /data/redis/cluster/bin/redis-cli -h 10.101.96.28 -p 9001
10.101.96.28:9001> set name miao
(error) CLUSTERDOWN Hash slot not served

报错了,因为虽然启动且配置了redis集群服务,但是他们暂时还不在一个集群内,互相直接发现不了,而且没有可存储的位置,即没有slot

安装redis集群需要的ruby和相关中间件,依次执行以下命令:

yum install ruby
yum install rubygems
gem install redis

执行第三个命令时,抛出异常,提示ruby版本太低,但是使用yum搜索ruby版本列表,2.0已是最高版本,如下所示:

所以需要换一种方式安装ruby,使用rvm安装ruby,首先去GitHub下载rvm的release稳定版

GitHub地址:https://github.com/rvm/rvm

本地下载之后,传到服务器上,解压缩之后,进入rvm目录,执行安装命令

./install --auto-dotfiles

使文件生效(/data是我的rvm安装目录)

source /data/rvm/scripts/rvm

安装成功,查看rvm版本

[root@gpap-prod-3 data]# rvm -v
rvm 1.29.12 () by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

通过rvm进行ruby包管理,安装2.3版本的ruby(不要安装其他版本,有坑)

rvm install 2.3

安装完成之后,可以查看下ruby的版本

[root@gpap-prod-3 ~]# ruby -v
ruby 2.3.8p459 (2018-10-18 revision 65136) [x86_64-linux]

再次执行之前报错的命令,顺利完成执行

[root@gpap-prod-3 ~]# gem install redis
Fetching redis-4.4.0.gem
Successfully installed redis-4.4.0
Parsing documentation for redis-4.4.0
Installing ri documentation for redis-4.4.0
Done installing documentation for redis after 0 seconds
1 gem installed

执行创建集群的命令,如下所示(--replicas 1 表示主从复制比例为1:1,即一个主节点对应一个从节点)

/data/redis/cluster/bin/redis-trib.rb create --replicas 1 10.101.96.28:9001 10.101.96.28:9002 10.101.96.28:9003 10.101.96.28:9004 10.101.96.28:9005 10.101.96.28:9006

输入命令后,会输出对应的主从节点(Master、Slave)的相关日志信息,如下所示:

原文地址:https://www.cnblogs.com/miaoying/p/15125334.html