Redis Cluster 运维环境安装记录

版权声明:欢迎转载,转载请说明出处https://csdn.yanxml.com。大数据Github项目地址https://github.com/SeanYanxml/bigdata。 https://blog.csdn.net/u010416101/article/details/81095621

前言

之前安装Redis Clutser模式遇到很多坑,一直没有总结。最近有时间,总结一下,相关的内容。

  • Redis 安装(略)
  • GCC安装
  • Ruby的安装
  • Ruby内 Redis.gem的安装
  • Redis Cluster的安装配置和启动

本文使用的资源,可在我的Github项目https://github.com/SeanYanxml/bigdata/tree/master/redis 目录下可以找到。
PS: (如果觉得项目不错,可以给我一个Star。)


详细介绍

  • Redis安装 & GCC安装
#GCC一般自带`GCC -v`检查
#Redis 安装
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
tar xzf redis-4.0.6.tar.gz
# cd redis-4.0.6
# make 
# 有时使用 make MALLOC=libc

Ruby 安装 & Gem库安装

  • 使用redis-trib.rb脚本,缺少ruby。
[root@cpic-redis3-78 src]# ./redis-trib.rb --help
/usr/cpic/apps/ruby/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
    from /usr/cpic/apps/ruby/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from ./redis-trib.rb:25:in `<main>'
  • 安装ruby
tar -zxvf ruby-2.4.3.tar.gz
cd ruby-2.4.3
./configure --prefix=/usr/cpic/apps/ruby
make & make install

注意Ruby的版本一般与GCC的内核版本有关。不应过高或过低,不然会导致安装错误。

  • 安装redis的ruby库。
[root@cpic-redis3-78 apps]# gem install redis-4.0.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
  • 安装ruby的zlib库
[root@cpic-redis3-78 ext]# cd zlib/
[root@cpic-redis3-78 zlib]# ls
depend  extconf.rb  Makefile  mkmf.log  zlib.c
[root@cpic-redis3-78 zlib]# ruby ./extconf.rb
checking for deflateReset() in -lz... no
checking for deflateReset() in -llibz... no
checking for deflateReset() in -lzlib1... no
checking for deflateReset() in -lzlib... no
checking for deflateReset() in -lzdll... no
checking for deflateReset() in -lzlibwapi... no
[root@cpic-redis3-78 zlib]# make
[root@cpic-redis3-78 zlib]# make install
  • 安装zlib库
rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm
depend  extconf.rb  Makefile  mkmf.log  zlib.c
[root@cpic-redis3-78 zlib]# ruby ./extconf.rb
checking for deflateReset() in -lz... yes
checking for zlib.h... yes
checking for crc32_combine() in zlib.h... yes
checking for adler32_combine() in zlib.h... yes
checking for z_crc_t in zlib.h... yes
creating Makefile
make: * No rule to make target /include/ruby.h', needed byzlib.o’. Stop
#MakeFile文件加上
# 加上
top_srcdir=/usr/cpic/apps/ruby-2.4.3
[root@cpic-redis3-78 apps]# gem install redis-4.0.1.gem
ERROR:  While executing gem ... (Gem::Exception)
    Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

#选择本地安装
 gem install -l redis-4.0.1.gem

注意,非本地安装需要安装OpenSSL组件。并且,阿里和网易的Gem仓库都已经不再维护了。需要去https://rubygems.org/gems/redis/versions/4.0.1进行查找。

  • 安装成功
 [root@cpic-redis3-78 src]# ./redis-trib.rb
Usage: redis-trib <command> <options> <arguments ...>

  create          host1:port1 ... hostN:portN
                  --replicas <arg>
  check           host:port
  info            host:port
  fix             host:port
                  --timeout <arg>
  reshard         host:port
                  --from <arg>
                  --to <arg>
                  --slots <arg>
                  --yes
                  --timeout <arg>
                  --pipeline <arg>
  rebalance       host:port
                  --weight <arg>
                  --auto-weights
                  --use-empty-masters
                  --timeout <arg>
                  --simulate
                  --pipeline <arg>
                  --threshold <arg>
  add-node        new_host:new_port existing_host:existing_port
                  --slave
                  --master-id <arg>
  del-node        host:port node_id
  set-timeout     host:port milliseconds
  call            host:port command arg arg .. arg
  import          host:port
                  --from <arg>
                  --copy
                  --replace
  help            (show this help)

For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.
# 如果集群之前就配置密码的,需要去/usr/lib/ruby/gems/1.8/gems/redis-3.2.1/lib/redis/client.rb内修改密码那一行的字段。

#自己个人的地址可以通过如下命令进行查找
cd /
find -name "*client.rb*"

# 需要修改密码的地方。
class Redis
  class Client

    DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      # 特别注意,改成集群密码即可。
      :password => "admin",
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :inherit_socket => false
    }
 }

其余Demo运行设置,详见Redis集群模式之分布式集群模式 .


Reference

[1]. Redis之集群redis-trib.rb环境的搭建-yellowcong
[2]. zlib-1.2.7-17.el7.x86_64.rpm
[3]. Ruby 安装 - Linux
[4]. redis 4.0.1
[5]. 解决方法:配置群集时# gem install redis 报错:Unable to require openssl, install OpenSSL and rebuild ruby
[6]. 源码安装redis集群详解
[7]. gem install 时报错,no such file to load – zlib (解决方案)
[8]. redis cluster 设置密码做集群时gem下client.rb文件修改
[9]. 源码安装redis集群详解
[10]. 基于redis 3.x搭建集群环境

阅读更多

扫码向博主提问

在风中的意志

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Java
  • 大数据
去开通我的Chat快问
换一批

没有更多推荐了,返回首页