[关闭]
@MrXiao 2018-07-24T08:32:48.000000Z 字数 3379 阅读 980

【Linux】CentOS7下搭建Redis集群详细过程

Linux


Redis-cluster集群方案从redis3.0版本开始支持,本文仅做基本的集群搭建介绍。

1、下载编译Reids

  1. //创建安装包文件夹
  2. mkdir /usr/local/packages
  3. //创建redis安装目录
  4. mkdir /usr/local/redis
  5. //下载安装包
  6. cd /usr/local/packages
  7. wget http://download.redis.io/releases/redis-4.0.1.tar.gz
  8. //解压到安装目录
  9. tar -zxvf redis-4.0.1.tar.gz -C /usr/local/redis
  10. //编译
  11. cd /usr/local/redis/redis-4.0.1
  12. make
  13. make install

注意:在执行make的是时候确保包含了编译所需的工具包。阿里云Centos7.0 编译没有问题直接通过

安装成功后,在/usr/local/redis/redis-4.0.1/src目录下会有编译后的文件,并且在/usr/local/bin目录下生成redis有关的指令文件。

此处输入图片的描述

2、节点规划

规划创建6个redis实例,3主3从,简单起见,均在同一机器上,规划端口为6380 ~ 6385。

在 /usr/local 下创建/redis/redis-cluster文件夹,并在其中创建6380-6385 6个文件夹

  1. [root@localhost redis-cluster]# mkdir 6380
  2. [root@localhost redis-cluster]# mkdir 6381
  3. [root@localhost redis-cluster]# mkdir 6382
  4. [root@localhost redis-cluster]# mkdir 6383
  5. [root@localhost redis-cluster]# mkdir 6384
  6. [root@localhost redis-cluster]# mkdir 6385

3、配置修改

拷贝一份配置文件到当前目录

  1. [root@localhost redis-cluster]# cp ../redis-4.0.1/redis.conf ./

修改属性,cope6份分别放在6个文件夹中,注意更改端口号

  1. port 6380 //端口
  2. daemonize yes //后台启动模式
  3. pidfile /var/run/redis-6380pid //开启daemonize需要配置
  4. cluster-enabled yes //cluster模式
  5. cluster-config-file nodes-6380.conf //日志文件名
  6. cluster-node-timeout 5000 //请求超时时间,5s
  7. appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
  8. bind 192.168.86.130 //服务器ip

4、启动redis

简便起见,创建集群启动脚本

  1. [root@localhost redis-cluster]#vim start-all.sh

输入一下内容并保存

  1. redis-server /usr/local/redis/redis-cluster/redis-6380/redis.conf
  2. redis-server /usr/local/redis/redis-cluster/redis-6381/redis.conf
  3. redis-server /usr/local/redis/redis-cluster/redis-6382/redis.conf
  4. redis-server /usr/local/redis/redis-cluster/redis-6383/redis.conf
  5. redis-server /usr/local/redis/redis-cluster/redis-6384/redis.conf
  6. redis-server /usr/local/redis/redis-cluster/redis-6385/redis.conf

赋予该脚本可执行权限:

  1. chmod +x start-all.sh

同样,创建集群关闭脚本,并赋予相同权限,内容如下

  1. [root@localhost redis-cluster]#vim stop-all.sh
  1. redis-cli -h 192.168.86.130 -p 6380 shutdown
  2. redis-cli -h 192.168.86.130 -p 6381 shutdown
  3. redis-cli -h 192.168.86.130 -p 6382 shutdown
  4. redis-cli -h 192.168.86.130 -p 6383 shutdown
  5. redis-cli -h 192.168.86.130 -p 6384 shutdown
  6. redis-cli -h 192.168.86.130 -p 6385 shutdown

启动redis,执行启动脚本:

  1. ./start-all.sh

查看redis启动情况:

[root@localhost redis-cluster]# ps -ef | grep redis
root       3241      1  0 02:33 ?        00:00:00 redis-server 192.168.86.130:6380 [cluster]
root       3243      1  0 02:33 ?        00:00:00 redis-server 192.168.86.130:6381 [cluster]
root       3248      1  0 02:33 ?        00:00:00 redis-server 192.168.86.130:6382 [cluster]
root       3256      1  0 02:33 ?        00:00:00 redis-server 192.168.86.130:6383 [cluster]
root       3261      1  0 02:33 ?        00:00:00 redis-server 192.168.86.130:6384 [cluster]
root       3266      1  0 02:33 ?        00:00:00 redis-server 192.168.86.130:6385 [cluster]
root       3271   2600  0 02:33 pts/0    00:00:00 grep --color=auto redis

5、Ruby环境

redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境。

  1. yum install ruby
  2. yum install rubygems

拷贝redis-3.0.0.gem至/usr/local下
执行:

  1. gem install /usr/local/redis

若报如下错误,则是ruby版本过低,需要安装一个高于2.2.2版本的ruby。

  1. ERROR: Error installing redis:
  2. redis requires Ruby version >= 2.2.2.

具体过程参考:

6、启动集群

拷贝redis-trib.rb到 redis目录下

  1. cp /usr/local/redis/redis-4.0.1/src/redis-trib.rb /usr/local/redis/redis-cluster

进入redis-cluster目录下,执行集群脚本:

  1. ./redis-trib.rb create --replicas 1 192.168.86.130:6380 192.168.86.130:6381 192.168.86.130:6382 192.168.86.130:6383 192.168.86.130:6384 192.168.86.130:6385

简单解释一下这个命令:调用 ruby 命令来进行创建集群,--replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。
随便找一个节点测试试

  1. [root@localhost redis-cluster]# redis-cli -h 192.168.86.130 -p 6382 -c
  2. 192.168.86.130:6382> set b 100
  3. -> Redirected to slot [3300] located at 192.168.86.130:6380
  4. OK
  5. 192.168.86.130:6380>

参考

配置文件说明
redis详解

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注