你的位置:首页 > 数据库

[数据库]Redis集群安装及配置步骤


运行环境:CentOS 7(版本号:1503)

Redis版本:3.0.5

参考文档:① http://www.redis.cn/topics/cluster-tutorial.html

              ② http://www.linuxidc.com/Linux/2015-08/121845.htm

注意:redis集群需要至少6个节点,也就是六台服务器。如果服务器数量不足可在每台服务器上建立多个节点,如2台服务器,每台服务器上建立3个节点

一、      为所有服务器安装Redis

1.使用ssh工具连接服务器,下载和解包。

cd /usr/local/

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

tar -zxvf redis-3.0.5.tar.gz

2.重命名文件夹

mv redis-3.0.5 redis

3.编译安装

       cd redis

       make && make install

在这里可能会碰到一个错误导致编译不过(如下)

make[1]: Entering directory `/redis/src'
CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/redis/src'
make: *** [all] Error 2

  原因是没有安装jemalloc内存分配器,可以安装jemalloc或 直接 输入makeMALLOC=libc  && make install

二、     配置节点

注意:以下方法是每台服务器单节点配置,如果需要在每台服务器上配置多个节点,可在cluster目录下创建多个文件夹,文件夹名任意取,最好使用节点端口号:如7000 7001 7002 再将redis.conf复制到每个文件夹中,配置步骤与单节点相同,注意配置时6379需要换成当前结点目录的端口号

1.创建cluster文件夹

mkdir cluster

2.复制配置文件

       cp./redis.conf ./cluster/

3.修改配置文件

       cd./cluster/

       vim./redis.conf

修改如下

daemonize    yes                  //redis后台运行
pidfile  /var/run/redis_6379.pid   //pidfile文件对应6379
port  6379                          //端口6379
cluster-enabled  yes               //开启集群  把注释#去掉
cluster-config-file  nodes.conf     //集群的配置  配置文件首次启动自动生成
cluster-node-timeout  5000       //请求超时  设置5秒够了
appendonly  yes                    //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

bind 本机ip地址                              //不要使用127.0.0.1

保存退出

4.修改防火墙规则,开放6379端口,由于redis自身的机制,需要再开放10000+6379 端口,否则最后集群通讯会出错

firewall-cmd --zone=public --add-port=6379/tcp–permanent

firewall-cmd --zone=public --add-port=16379/tcp--permanent

firewall-cmd --reload

5.启动节点

       redis-server./redis.conf

6.测试是否正常运行

       ps –ef |grep redis

显示如下即可

 

如果是多节点配置则会显示多条进程

三、     启动集群功能(只需给其中一台服务器配置)

运行 /usr/local/redis/src/redis-trib.rb由于这是用ruby写的程序,需要先安装ruby。

       yum -yinstall ruby ruby-devel rubygems rpm-build

从ruby的gem工具包安装redis

       geminstall redis

这个命令可能会出现下载错误,原因是链接错误,下载地址使用http协议而非https协议,先执行以下命令修改下载地址

gem sources -r https://rubygems.org

gem sources -a http://rubygems.org

再执行gem install redis命令就可以了

现在可以执行redis-trib.rb了

       cd ../src

       ./redis-trib.rbcreate --replicas 1 本机ip:节点端口号…(后面加上所有服务器上的所有节点,格式为ip地址:节点端口号)

--replicas 1  表示 自动为每个master节点分配一个slave节点    如果有6个节点,程序会按照一定规则选举生成 3个master(主)3个slave(从)。

执行之后redis-trib 会打印出一份预想中的配置出来,没问题的话,就可以输入 yes , redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯,最后可以得到如下信息:

[OK] All 16384 slots covered

这表示集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。

如果出现Waiting for the cluster to join..........一直等待没反应,说明配置过程有问题,