在搭建redis集群之前需要安装ruby。redis使用ruby来做集群的。用一个叫redis-trib.rb的ruby脚本。redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下(redis-xxx/src/)。是基于redis提供的集群命令封装成简单、便捷、实用的操作工具。redis-trib.rb是redis作者用ruby完成的。所以redis集群需要先安装ruby环境。

安装ruby

下载:>wget https://cache.ruby-china.com/pub/ruby/ruby-2.3.1.tar.gz

解压:tar -xf ruby-2.3.1.tar.gz

进入目录:cd ruby-2.3.1

在当前根目录执行编译(相当于c语言有各种打包、压缩过程;可以将打包压缩的内容解压):./configrue

编译安装:make && make install (时间较长)

yum安装rubygems

RubyGems(简称gems)是一个用于对Ruby组件进行打包的Ruby打包系统。它提供了一个分发Ruby程序和库的标准格式,还提供一个管理程序包安装的工具(简单理解就是ruby运行时,需要的各种插件都在gems里)是一种技术支持。

安装命令:yum install rubygems

安装过程需要输入y同意

安装redis接口包

redis-cluster安装需要通过gem install redis来安装相关依赖。否则报错。

通过gem install redis会报如下错误:(源地址:https://blog.csdn.net/feinifi/article/details/78251486)

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库。当添加完zlib库之后,再次执行gem install redis 还会出现错误2:

ERROR:  While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

提示缺少openssl库,这两个库可以通过yum安装,但是安装了需要集成到ruby中。

先解决错误一,解决办法分为两步:

一、安装zlib库,如果已经安装,跳过,直接进入第二步

yum install zlib-devel

二、集成zlib库到ruby环境

cd /{解压目录}/ruby-2.3.1
cd ext/zlib
ruby extconf.rb
make && make install

// 源地址中有写将Makefile中$(top_srcdir)改为../..   但是我在Makefile中并未发现$(top_srcdir),大家根据自己情况,若发现应该修改。

另一个缺少openssl库的错误,可以用同样的问题解决。

一、安装openssl库,如果已经安装可以跳过,直接进入第二步。

yum install openssl-devel

二、集成zlib库到ruby环境

cd /{解压目录}/ruby-2.3.1
cd ext/zlib
ruby extconf.rb

//在操作下一步之前需要在Makefile文件中添加top_srcdir = ../..

// 目的是为文件中$(top_srcdir)赋值,否则在make时会出现如下错误:
//make:*** No rule to make target `/include/ruby.h', needed by `zlib.o'.  Stop
make && make install

make && make install 运行结果:

[root@test01 openssl]# make && make install
compiling openssl_missing.c
compiling ossl.c
compiling ossl_asn1.c
compiling ossl_bio.c
compiling ossl_bn.c
compiling ossl_cipher.c
compiling ossl_config.c
compiling ossl_digest.c
compiling ossl_engine.c
compiling ossl_hmac.c
compiling ossl_ns_spki.c
compiling ossl_ocsp.c
compiling ossl_pkcs12.c
compiling ossl_pkcs5.c
compiling ossl_pkcs7.c
compiling ossl_pkey.c
compiling ossl_pkey_dh.c
compiling ossl_pkey_dsa.c
compiling ossl_pkey_ec.c
compiling ossl_pkey_rsa.c
compiling ossl_rand.c
compiling ossl_ssl.c
compiling ossl_ssl_session.c
compiling ossl_x509.c
compiling ossl_x509attr.c
compiling ossl_x509cert.c
compiling ossl_x509crl.c
compiling ossl_x509ext.c
compiling ossl_x509name.c
compiling ossl_x509req.c
compiling ossl_x509revoked.c
compiling ossl_x509store.c
linking shared-object openssl.so
/usr/bin/install -c -m 0755 openssl.so /usr/local/lib/ruby/site_ruby/2.4.0/x86_64-linux
installing default openssl libraries

成功之后,再次运行gem install redis,出现以下界面:

Fetching: redis-4.0.1.gem (100%)
Successfully installed redis-4.0.1
Parsing documentation for redis-4.0.1
Installing ri documentation for redis-4.0.1
Done installing documentation for redisafter 1 seconds
1 gem installed

检查版本 :ruby -v

完成ruby环境的安装,就可以利用ruby的环境配置执行.rb文件。

安装reids

到此搭建redis集群的准备工作完成,接下来开始搭建集群。 搭建公网集群与内网不同,有一些需要注意的地方。redis集群需要使用3.0以上版本的tar包。

下载tar包:wget http://download.redis.io/releases/redis-3.2.11.tar.gz

进入解压目录:cd /{解压目录}/redis-3.2.11

解压编译安装:make && make install

创建节点:创建集群节点,不同的节点创建对应的目录管理配置文件。例如:占用8000端口的redis服务,对应的redis.conf放到8000的文件夹下。

拷贝配置文件到对应的目录下:cp redis.conf 8000

修改配置文件:vim redis.conf    (显示文件行数命令->:set number)

p61 bind 0.0.0.0  //由于是公网所以必须更改为0.0.0.0,让所有网络均可访问。内网设置为本机ip即可。

p80 protected-mode no  //yes改为no,关闭保护模式,登录时不需要提供安全信息,例如密码。

p84 port 8000  //端口

p128 daemonize yes  //后台运行

P150 pidfile /var/run/redis_8000.pid  //当大量的进程启动后,很难通过ps -ef|grep redis直接寻找你需要操作的进程的pid

P163 logfile 8000/redis.log  //相对路径,启动时在redis的根目录,log文件记录的内容,就是在启动时,控制台打印的内容,和后续操作redis时所有的日志信息;

P237 dump dump8000.rdb  //指定当前服务加载的持久化文件

P593 appendonly yes  //默认是rdb方式持久化

P597 appendfilename "appendonly8000.aof"  //指定一个aof格式的持久化文件

P721 cluster-enabled yes  //加载当前配置文件的redis服务一旦启动需要开启集群模式,否则无法使用集群的各种策略和逻辑

P729 cluster-config-file nodes_8000.conf  //集群配置启动后,将会创建这个nodes文件,记录当前服务器上唯一的一个集群状态;例如,搭建了8000-8005这样一个集群,操作失误下,集群失效,重新搭建集群,当前服务器读取这个配置文件会发现,槽道已经被一个集群分配了,新的集群搭建失败;

P735 cluster-node-timeout 15000  //请求超时 默认15秒,可自行设置

利用vim的替换命令,将不同节点的端口在文件中替换拷贝到对应管理的文件夹中。vim中:%s/8000/8001/g

完成之后调用ls检查目录中是否都存在redis.conf文件。

分别启动节点实例:

redis-server 8000/redis.conf

redis-server 8001/redis.conf

检查是否成功:ps -ef|grep redis

到此,一台云服务器上的redis服务配置完成,以同样的方式在其他云服务器上配置。

创建集群

在redis根目录src目录下有个文件redis-trib.rb,这个就是用ruby写的命令文件,它是一个语言编写的快速操作集群的命令文件,整合了底层客户端的各种各样的命令,执行创建集群命令(redis集群最少需要3个master才能正常运行)。

关闭服务器防火墙:

service iptables stop //临时关闭防火墙,重启之后防火墙依然开启

chkconfig iptables off //永久关闭防火墙配置,两个命令配合

进入src目录:

使用命令创建集群:./redis-trib.rb create --replicas 1 节点信息们。

--replicas 1表示自动为每一个master节点分配至少一个slave节点。我使用了六个节点,则程序会按照规则生成3个master3个slave。

会报错,提示连接不到节点。这是因为使用的是云服务器,在阿里云的安全组中没有将对应的端口开放,需要登录阿里云将自己配置的端口放行。

具体配置规则:https://jingyan.baidu.com/article/fea4511a2e387cf7bb912532.html

再次执行命令:

集群搭建成功。

云服务器搭建redis集群相关推荐

  1. 利用云服务器搭建hadoop集群

    利用云服务器搭建hadoop集群 测试连接 一. Linux配置 二. 3台服务器免密码登录 1. 三台机器生成公钥与私钥: 2. 拷贝公钥到同一台机器 3. 复制第一台机器的认证到其他机器 4. 通 ...

  2. 使用微软云服务器搭建Hadoop集群

    使用微软云服务器搭建Hadoop集群 环境准备 修改主机名 配置无秘钥登录 下载并安装JDK Java相关命令的讲解 关闭3台机器的防火墙(微软云服务器上的防火墙默认是关闭的,此步可以跳过) 三台机器 ...

  3. 基于阿里云服务器搭建hadoop集群:HDFS的namenode WEB访问9870端口打不开解决方法

    基于阿里云服务器搭建hadoop集群:HDFS的namenode WEB访问9870端口打不开解决方法 以下是基于我所面临问题的解决办法. 1.在本地的c:windows/system32/dirve ...

  4. 使用三台阿里云服务器搭建Hadoop集群(云计算实验踩坑集锦)

    使用阿里云服务器搭建这个hadoop集群,踩得坑人已经傻了,浪费了我快一周的时间. 1.准备环节 准备三台阿里云服务器 Namenode 121.196.224.191 Datanode1 121.1 ...

  5. 云服务器搭建k8s集群的巨坑,node间网络不通问题

    最近用腾讯云服务器搭建了k8s集群,踩到一个巨坑.现象就是服务正常搭建完毕,各个必须的pod也处于ready状态,但是node不能访问别的node的pod.搭建的示例tomcat的demo也不能通过外 ...

  6. 基于滴滴云服务器搭建 Consul 集群

    前言 Consul 是什么 Consul 是用 Go 开发的分布式服务协调管理的工具,它提供了服务发现,健康检查,Key/Value 存储等功能,并且支持跨数据中心的功能. Consul 基本概念 A ...

  7. 三台云服务器搭建hadoop集群

    hadoop-2.10.1百度云资源链接: 链接:https://pan.baidu.com/s/1agl2Cg8MrBSYyFM2vq_4GA 提取码:lbsm 上传hadoop压缩包至云服务器并解 ...

  8. 华为云 和 阿里云 跨服务器搭建Hadoop集群

    目录 华为云 和 阿里云 跨服务器搭建Hadoop集群 说明 期间遇到的问题 CentOS6 7 8更换阿里yum源 修改服务器名称 安装JDK 安装Hadoop 编写集群分发脚本 xsync scp ...

  9. 理解并从头搭建redis集群

    部分开发人员工作当中只是在应用中使用redis,比如用来做数据结果的缓存.而且现在有很多不错的redis客户端工具(redisson),基本上可以不用关注redis命令就可以完成相当部分的功能.所以可 ...

最新文章

  1. Xilinx FPGA全局介绍
  2. pythonctypes int数组调用dll
  3. avalov+require实现tab栏
  4. hdu 5504(枚举+找规律)
  5. 关于小程序取data- 的值的问题
  6. Bootstrap源代码多行代码
  7. 万字通俗讲解何为复杂度
  8. MTK 驱动(83)---mtklog相关知识
  9. Real-time 节点
  10. idea 配置 maven 和 镜像
  11. nmake下一些错误的解决办法
  12. 微信如何群发消息给好友和群:一键群发
  13. 电子爱好者都应该至少有一台示波器
  14. 快速学习一门新技术的工作原理(十步学习法来自软技能)
  15. 视频监控客户端-GB28181之转码库-转码格式支持H265、H264、MPEG4、MPEG2
  16. ITIL 4 讲解:事态、事件、灾难流程如何界定?
  17. 网络安全是什么意思?网络安全产品又包含哪些?
  18. 谷歌浏览器关闭后未清除cookie
  19. 细说2类骗人的物联卡,满满的都是套路!
  20. 欺骗的艺术:为何Tor大陆被禁止,为何俄罗斯美国成漏洞榜一二,网络安全带你揭秘...

热门文章

  1. 11 Tornado - 使用模板
  2. python cv2读取图片后进行通道变换以及PIL阅读图像的通道转换
  3. 绕过卡巴斯基主动防御系统方法的讨论
  4. Apache Spark 3.0 预览版正式发布,多项重大功能发布
  5. 【概述】 无人驾驶汽车系统基本框架梳理
  6. 新视野大学英语(第三版)第二册课后翻译
  7. 安装 pulseaudio
  8. 信道容量及信道编码原理学习
  9. 从网易与淘宝的font-size思考前端设计稿与工作流
  10. win10ltsc安装后重启提示bitlocker有问题怎么办_TIA Portal博途常见的15大问题汇总