redis集群安装篇

redis 从3.0以后支持了集群模式,在3.0以前只支持单实例,虽然现在的服务器内存已经很大了,但是单体上总会有瓶颈,导致无法满足业务需求,如果用redis集群的话,就可以横向扩展,在集群中增加节点、删除节点等,本篇只是介绍了集群的安装,将在下一篇介绍集群原理以及使用redis集群

一、环境说明

1.1、实验环境说明

本次实验是安装redis集群,安装的操作系统是centos系列,那redis的集群最少节点是3台master节点,为了保证数据的高可用性,需要给每一个master节点配置一台slave节点,所以最后,我们需要安装一共6个节点的redis实例,那问题是我需要准备6台机器吗,答案是不需要! ,准备一台机器即可,在一台机器上起6个redis实例即可,也叫伪集群,当然如果有条件的话,可以试试6台机器,安装的方法和一台都是一样的

1.2、安装组件说明

  • 服务器操作环境: CentOS release 6.5 (x86_64) 、 CentOS 7

  • Redis版本: redis-3.2.10

  • ruby版本:ruby-2.3.7.tar.gz , redis集群的创建用到了ruby语言,所以也要安装ruby环境

  • gcc: 确保安装gcc编译器

二、环境检测

#安装gcc,如果已经装过可略过
yum install gcc  
# 查看gcc是否安装成功
gcc -v #
#查看防火墙状态
service iptables status  
 #如果开启则关闭防火墙,后面会用到php远程连接到redis集群中
service iptables stop

三、安装redis实例

3.1 下载和安装

mkdir -p /usr/local/redis-3.2.10/conf
cd /usr/local/src
#下载redis源码包
wget http://download.redis.io/releases/redis-3.2.10.tar.gz
#解压到当前目录下
tar -zxvf redis-3.2.10.tar.gz  
cd redis-3.2.10
#编译
make 
#安装
make PREFIX=/usr/local/redis-3.2.10 install

3.2、redis 配置

#复制redis配置文件到安装目录
cp /usr/local/src/redis-3.2.10/redis.conf /usr/local/redis-3.2.10/conf/  
#复制ruby的脚本到bin目录下,可全局使用脚本
cp /usr/local/src/redis-3.2.10/src/redis-trib.rb /usr/local/bin/
#验证是否成功,在任意目录执行以下命令
redis-trib.rb

3.3、启动redis实例

redis-server /usr/local/redis-3.2.10/conf/redis.conf
netstat -tlun | grep 6379
redis-cli -p 6379

四、安装ruby

为什么安装ruby,redis和ruby有啥关系? 那是因为redis的集群用了ruby的脚本语言写了一个执行脚本,用来创建redis的集群的,所以想要执行ruby的脚本 ,必须要有ruby环境, redis3.0的版本都要求ruby的版本是 >= 2.2 , centos的yum默认安装的是2.2版本, 所以用了源码安装,当然你也可以配置yum源,以下是源码安装ruby的过程

4.1、下载和编译安装

    cd /usr/local/src/
    wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.7.tar.gz
    tar -zxvf ruby-2.3.7.tar.gz
    mkdir /usr/local/ruby-2.3.7
    #编译,
    ./configure --prefix=/usr/local/ruby-2.3.7/
    make && make install
    #测试是否安装成功
    ruby -v
    gem -v

4.2、配置环境变量

vim /etc/profile  
#在文件里的最下在加入,保存
export PATH=/usr/local/ruby-2.3.7/bin:$PATH
#保存退出之后,执行此命令
source /etc/profile

4.3 、安装ruby的扩展包redis

gem install redis

五、创建集群

上面的所有步骤并不是创建集群,只是准备了redis 和 ruby的环境,这一步当中才是真正的来创建集群

5.1、创建实例的文件夹

mkdir -p /usr/local/redis-cluster/{7000,7001,7002,7003,7004,7005}
#创建一个redis的集群配置文件,分别复制到上面的文件夹内,端口对应的就是上面的文件夹
vim redis.conf  
    port 7000    #对应不同的端口
    daemonize yes
    cluster-enabled yes
    cluster-config-file nodes-7000.conf   #对应不同的端口
    cluster-node-timeout 5000
    appendonly yes

5.2、分别启动六个redis实例,当然可以写个shell脚本来统一执行

redis-server  /usr/local/redis-cluster/7000/redis.conf
redis-server  /usr/local/redis-cluster/7001/redis.conf
redis-server  /usr/local/redis-cluster/7002/redis.conf
redis-server  /usr/local/redis-cluster/7003/redis.conf
redis-server  /usr/local/redis-cluster/7004/redis.conf
redis-server  /usr/local/redis-cluster/7005/redis.conf

#启动之后,查看六个实例是否启动
netstat -tlun | grep 700  # 查看带有700的端口

5.4、启动集群

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

5.5、测试集群

redis-cli -c -p 7000 
set name test
get name

选项说明: -c 开启集群模式 -p 指定端口

六、php连接集群

6.1 、为php编译redis模块

wget https://pecl.php.net/get/redis-4.0.2.tgz
tar -zxvf redis-4.0.2.tgz
cd redis-4.0.2
phpize
./configure 
make && make install
#编辑php配置文件
vim /etc/php.ini 
#在文件最末尾加入,重启apache
extension=redis.so

6.2、写一个php测试

<?php
$obj_cluster = new RedisCluster(NULL, ['127.0.0.1:7000']);
$obj_cluster->set("name","test");
echo $obj_cluster->get("name")


上一篇:没有了

下一篇:没有了

相关推荐

  • 细说docker系列之集群swarm上篇

    从本篇正式开始,我们将接触docker的高级部分,也就是docker的集群,那么关于docker的集群方案也有很多, 我知道的有 kubernetes(k8s)...

    Border circle luohua 2020-07-19 15:51:45 0 0 31

  • redis集群安装篇

    redis 从3.0以后支持了集群模式,在3.0以前只支持单实例,虽然现在的服务器内存已经很大了,但是单体上总会有瓶颈,导致无法满足业务需求,如果用redis集...

    Border circle luohua 2020-07-19 14:46:09 0 0 18

发表评论