Linux环境下Redis集群部署

Redis简介

Redis是一个高性能的key-value数据库。

编写目的

由于接触的产品使用了redis数据库作为内置数据库,所以搭建测试环境的时候需要搭建redis集群。之前也没接触过redis,为了以后便于温故,所以根据实际测试环境搭建的过程编写了该文档。

环境

服务器:192.168.51.210、192.168.51.211、192.168.51.212
服务器版本:CentOS Linux release 7.2.1511 (Core)
介质:redis3.0.0
系统环境:系统中已经安装了ruby。输入rruby -v 可以查看是否安装了ruby,若没有安装可以参考文章末尾进行安装。

步骤

  1. 下载介质

     官网 http://download.redis.io/releases 下载redis3.0.0版本的介质。使用xshell把介质传到210服务器的上。
    
  2. 解压编译源码

     # tar -zxvf redis-3.0.0.tar.gz
     # cd redis-3.0.0
     # make && nake install
    
     然后将src目录下的redis-trib.rb 复制到 /usr/local/bin
    
  3. 创建redis节点

     1. 先在redis-3.0.0的根目录下新建redis-cluster目录
     # mkdir redis-cluster
     
     2. 在redis-cluster目录下创建目录 7000、7003,将redis.conf分别拷贝到这两个目录下:
     # mkdir 7000 7003
     # cp redis.conf redis-cluster/7000
     # cp redis.conf redis-cluster/7003
     
     3. 分别修改7000(7003)/redis-conf文件:
     port 7000 //端口
     bind 服务器ip地址,如192.168.51.210
     daemonize yes //redis 后台运行
     pidfile /var/run/redis_7000.pid //pidfile文件对应所写的端口号
     cluster-enable yes //开启集群,把注释#去掉
     cluster-config-file nodes_7000.conf //集群的配置,数字即为端口号
     cluster-node-timeout 15000 //请求超时,默认15秒,把注释#去掉
     appendonly yes //aof日志开启,会记录每次写操作,在此次安装中,appendonly设置成no,后续如果需要,再做更改。
    

    接着在另外两台服务器(211/212)重复上述步骤,即可配置完成。注:各个服务器下的redis-cluster下目录不要重名及配置中的端口号不要冲突

  4. 启动节点

    三台服务器都安装完成后启动节点,如:在这里插入图片描述

  5. 检查启动情况
    出现服务进程,即表示redis节点启动成功:
    在这里插入图片描述

  6. 创建集群

     redis官方提供了redis-trib.rb工具,在根目录的src目录中,第三步中已经将它复制到 /usr/local/bin 目录中,可以直接执行以下命令:
     
     #  redis-trib.rb create --replicas 1 192.168.51.210:7000 192.168.51.210:7003 192.168.51.211:7001 192.168.51.211:7004 192.168.51.212:7006 192.168.51.212:7007
    

    执行完后出现下方提示:
    在这里插入图片描述
    输入yes后,出现以下内容,表示安装成功:
    在这里插入图片描述

  7. 验证集群
    在第一台机器上连接集群的7000端口的节点,在另外一台连7006节点,连接方式为 redis-cli -h 192.168.51.210 -c -p 7000 ,加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。
    在这里插入图片描述
    然后在另外一台7000端口,查看 key 为 hello 的内容,如下图:
    在这里插入图片描述
    以上说明集群搭建成功并运行正常

安装过程遇到的问题

附1:在第六步,创建集群时,redis-trib.rb命令是用 ruby 实现的,在执行时可能会出现错误,解决办法可参考其他博主:link.

也可参考下文:

执行redis-trib.rb时遇到的问题:
redis-trib.rb是Redis Cluster的一个常用工具。下面记录了执行此命令时遇到的一系列错误。

执行: # redis-trib.rb create --replicas 1 192.168.51.210:7000 192.168.51.210:7003 192.168.51.211:7001 192.168.51.211:7004 192.168.51.212:7006 192.168.51.212:7007
 
运行后提示:/usr/bin/env: ruby: 没有那个文件或目录

看来是ruby没有安装,于是执行:

yum install -y ruby //安装ruby redis-trib.rb

再次执行 # redis-trib.rb create --replicas 1 192.168.51.210:7000 192.168.51.210:7003 192.168.51.211:7001 192.168.51.211:7004 192.168.51.212:7006 192.168.51.212:7007

redis-trib.rb:24:in `require’: no such file to load – rubygems (LoadError) from src/redis-trib.rb:24

ruby安装成功,但是rubygem没有安装,所以导致了上述错误,于是继续:

yum install -y rubygems //安装rubygem

#redis-trib.rb create --replicas 1 192.168.51.210:7000 192.168.51.210:7003 192.168.51.211:7001 192.168.51.211:7004 192.168.51.212:7006 192.168.51.212:7007

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require': no such file to load -- redis (LoadError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire’ from src/redis-trib.rb:25

rubygem安装成功,但是新的错误又出现了。google了一下,发现是ruby版本太低了。yum安装的版本是1.8.7,但是Redis需要的是1.9.3或者更高,于是升级ruby版本到1.9.3.

curl -L get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh //安装
rvm rvm install 1.9.3 //安装ruby1.9.3 rvm use 1.9.3
–default //设置ruby1.9.3为默认的ruby,因为还安装有1.8.3

gem install redis ERROR: Could not find a valid gem ‘redis’ (>= 0), here is why: Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Connection timed out - connect(2) (https://api.rubygems.org/latest_specs.4.8.gz) ERROR: Possible alternatives: redis

又遇到新的错误了,看来是连接gem源出错了,于是增加新的gem源:

gem sources -a http://ruby.taobao.org/ //添加淘宝的gem源 然后”gem install redis“执行成功,之后的”redis-trib.rb create ......“也ok了。

附2 执行第六步的命令时也可能出现以下错误:(前提ruby已经安装)

在这里插入图片描述
这个问题是没有安装redis导致,那么进行安装redis:gem install redis
当执行:gem install redis 时出现以下错误:
在这里插入图片描述
解决方法:安装openssl 再次编译安装。

1 执行:yum -y install openssl openssl-devel

2 进入ruby安装目录下执行:

2.1 make clean //清除上次编译文件

2.2 执行./configure

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值