Linux 下的 redis集群部署文档

一、 安装环境及工具

 

服务器三台:


系统:CentOS6.5

相关安装工具包及版本:

redis-3.2.10.tar.gz(下载:http://redis.io/download/ 

ruby-2.4.2.tar.gz(下载:http://www.ruby-lang.org/en/downloads/ )

rubygems-2.6.13.tgz(下载:https://rubygems.org/pages/download )

zlib-1.2.11.tar.gz(下载:http://www.zlib.net 

openssl-1.0.2l.tar.gz(下载:https://www.openssl.org/source/ 

redis-3.2.1.gem(下载: https://rubygems.org/gems/redis/ )

 

二、 集群搭建步骤(每台服务器均执行相同操作)

1. 安装gcc环境

安装Redis需要依托gcc环境,先检查Linux是否已经安装了gcc,如果没有安装,则需要进行安装。

执行以下命令检查gcc是否安装:

gcc -v

若已安装则会显示相关版本信息,如果没有任何信息则通过以下命令安装:

yum install gcc-c++

2. 安装ruby和rubygems

yum install ruby

yum install rubygems #2.2及以上版本

3. 安装Redis(搭建集群需要版本号在3.0以上) 

· 将压缩包拷贝到Linux服务器opt目录下,执行解压操作

tar xzf redis-3.2.10.tar.gz

· 进入解压后的目录,进行编译(需要root权限)

cd redis-3.2.10

make && make install

· linux下的redis可执行文件位于src目录下,配置文件位于解压目录下,在解压后目录下执行如下命令启动redis查看是否安装成功

./src/redis-server redis.conf

 

4配置redis集群

· opt目录下创建redis-cluster文件夹,将redis安装目录src下的redis-trib.rb文件复制到redis-cluster目录下

mkdir  redis-cluster  

cp ./redis-3.2.10/src/redis-trib.rb ./redis-cluster

· 然后在redis-cluster目录下创建以端口命名的节点文件夹70017002

mkdir 7001 7002

· 将redis安装目录下的redis.conf配置文件及其src目录下的redis-server拷贝到7001下

cp ../redis-3.2.10/redis.conf ./7001

cp ../redis-3.2.10/src/redis-server ./7001

cp ../redis-3.2.10/redis.conf ./7002

cp ../redis-3.2.10/src/redis-server ./7002

· 分别进入7001和7002目录进行配置redis.conf,在配置文件中找到如下属性进行相关配置,若被注释掉的则放开注释按以下配置

#设置为后台启动

daemonize yes

#修改端口号,分别对应70017002

port 7001

#开启cluster

cluster-enabled yes 

#超时失效key 的监听触发 

notify-keyspace-events Ex 

#Redis运行时保存配置的文件

cluster-config-file nodes.conf

#集群超时时间,结点超时多久则认为它宕机了

cluster-node-timeout 30000

#主库下线且没有从库进行故障恢复时,集群不可用

cluster-require-full-coverage yes

#是否在每次更新操作后进行日志记录

appendonly yes

#绑定全网ip

bind 0.0.0.0

· 写个命令脚本start-node.sh以便启动节点

#任意目录下新建脚本文件,方便执行即可,建议将此脚本配置为开机自启动

vi start-node.sh

#编写脚本内容

#!/bin/bash

echo "cluster start..."

cd /opt/redis-cluster/7001

./redis-server redis.conf

cd ../7002

./redis-server redis.conf

echo "cluster started."

 

· 使脚本有执行权限,并启动查看

#使脚本有执行权限

chmod u+x start-node.sh

#启动脚本

./start-node.sh

#查看redis进程启动状态

ps -ef | grep redis

 

 

5开启redis集群

在所有服务器均完成以上步骤1至4时,放可在任意服务器上执行此步骤。

· 进入opt/redis-cluster目录,执行开启集群命令

#以下是一个命令,需一并执行,若执行成功,则命令窗口会列出一个redis给出的默认搭建方案,输入yes同意即可。

./redis-trib.rb create --replicas 1 10.1.34.101:7001 10.1.34.101:7002 10.1.34.102:7001 10.1.34.102:7002 10.1.34.103:7001 10.1.34.103:7002

· 客户端连接测试,进入redis安装目录的src目录下执行以下命令

#连接集群

redis-cli -h 10.1.34.101 -p 7001 -c

#进行键值存取测试,若能正常存取则开启集群成功

set foo bar

get foo

 

至此部署结束。

 

 

三、 相关错误及解决方案

 

若执行以上开启集群命令出现Ruby和Rubygems相关错误的话,那可能是没有安装好Ruby和Rubygems,若已经安装好了,还报类似如下错误

 

/home/cmfchina/ruby/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)

from /home/cmfchina/ruby/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'

from ./redis-trib.rb:25:in `<main>'

 

则是提示不能加载redis,那是因为缺少redis和ruby的接口,还需要使用gem 安装对应的Redis的Rbuy接口包redis-3.2.1.gem。

 

执行gem install redis-3.2.1.gem命令安装:

 

gem install redis-3.2.1.gem

 

若执行此命令又报类似如下错误

 

ERROR:  Loading command: install (LoadError)

    cannot load such file -- zlib

ERROR:  While executing gem ... (NoMethodError)

    undefined method `invoke_with_build_args' for nil:NilClass

 

这是因为需要依赖zlib工具,需要再安装zlib才行。安装好后若再报openssl相关的错误,则需要再安装openssl。

 

以上解决方案以及相关的离线安装方法可以参考如下文章:

 

http://www.cnblogs.com/xuliangxing/p/7146868.html 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值