Redis的下载和安装与集群的配置解决redis requiresRuby version >= 2.2.2的问题

Redis不仅可以搭建单机的,还可以搭建集器或者主从复制的结构,在高并发的环境下具有高可用性。在搭建集群时使用redis官方给的工具:redis-trib.rb 这个工具构建redis集群的时候,报错了:“redis requires Ruby version >= 2.2.2”,于是这里给出完整的安装过程和配置过程

一 Redis安装
1.选择安装位置,我这里安装在/src文件里

  1. cd /usr/local/src

2.下载Redis,本例的版本是4.0.10,Linux的版本是CentOS7

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

如果提示没有找到命令,则先执行如下命令安装wget,再下载Redis

  1. yum install wget

若系统没有网络,可以去官网下载 Redis 压缩包http://download.redis.io/releases,然后将下载的 redis 上传到虚拟机的/usr/local/src 目录下

3.安装Redis
先解压,在进入解压目录安装,如下4条命令;

  1. tar -zxvf redis-4.0.10.tar.gz
  2. cd redis-4.0.10
  3. make MALLOC=libc
  4. make install

如果在执行make MALLOC=libc 提示gcc 命令没有找到时,先安装gcc,命令如下:

  1. yum install gcc

4.配置Redis
我们可以在目录中找到redis.conf配置文件,用vi打开,主要修改如下几个地方

  1. daemonize yes
  2. #bind 127.0.0.1
  3. requirepass 123@123
  4. protected-mode no

说明:

第一行: 表示redis可以在后台启动
第二行:表示连接该Redis的地址,默认下只能本地连接,如果注释掉,外网就可以连接了
第三行: 设置登陆该redis的密码
第四行: 由于设置了登陆密码,保护模式可以关闭了
5.配置CentOS7
为了可以让远程电脑连接上,我们要开放6370端口或者直接禁用防火墙。

可以看这边文章:linux的Centos系统开放特定端口,关闭防火墙,解决Centos7没有iptables的问题

6.Redis的启动和关闭
启动

  1. redis-server redis.conf //其中redis.conf是配置文件,你也可以指定其他配置文件

进入Redis控制台

  1. redis-cli -a 123@123

执行ping命令,如果看到pong,表示redis安装成功
如果想退出,先执行shutdowm 再执行exit命令

到这里单机的Redis就可以了,接下来搭建Redis集群
二 Redis集群配置
1,集群规划

我们在同一台服务器上用不同的端口代表不同的redis服务器
主节点: 192.168.174.10:8081,192.168.174.10:8082,192.168.174.10:8083
从节点: 192.168.174.10:8085,192.168.174.10:8085,192.168.174.10:8086

2.集群配置

Redis的集群管理工具依赖于Ruby环境,但是centos7默认的Ruby环境一般都是低的,不然会出现redis requires Ruby version >= 2.2.2的问题”所以按以下步骤来

安装RVM,RVM是Ruby的管理工具

先执行一条官方 https://rvm.io/ 复制来的长命令(…C0E3空格7D2B…)

  1. #gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

可能会等待十几秒时间,然后执行下面命令:

  1. \curl -sSL https://get.rvm.io | bash -s stable

按照提示,执行该命令

  1. source /etc/profile.d/rvm.sh  

最后的命令是让RVM安装后直接可以用,然后查看RVM里的Ruby列表


rvm list known
安装ruby 2.4.1 ,直接跟版本号即可

  1. rvm install 2.4.1    

安装Redis依赖

  1. gem install redis

接下来创建redisCluster文件,将上面单机下载的redis压缩包复制到redisCluster并解压安装,如

  1. mkdir redisCluster
  2. cp -f ./redis-4.0.10.tar.gz ./redisCluster
  3. cd redisCluster
  4. tar -zxvf redis-4.0.10.tar.gz
  5. cd redis-4.0.10
  6. make MALLOC=libc
  7. make install

安装成功后,把解压文件中的redis-4.0.10/src中的redis-trib.rb文件复制到redisCluster文件中

  1. cp -f ./redis-4.0.10/src/redis-trib.rb ./

然后再redisCluster文件再创建6个目录,分别是8001-8006,代表6个redis服务器,于是我们复制redis-4.0.10目录下的配置文件redis.conf到这6个目录中,修改其中的端口分别是8001—8006.主要修改配置如下:

  1. port 8001
  2. #bind 127.0.0.1 注释后可以远程访问
  3. cluster-enabled yes #开启集群
  4. cluster-config-file nodes-8001.conf #配置文件名
  5. protected no #关闭
  6. daemonize yes #后台运行
  7. requirepass 123@123
  8. masterauth 123@123

安装这个配置对8002-8006的配置文件进行配置

配置完成后,返回到redisCluster目录,对6个服务器启动

  1. redis-server ../8001/redis.conf
  2. redis-server ../8002/redis.conf
  3. redis-server ../8003/redis.conf
  4. redis-server ../8004/redis.conf
  5. redis-server ../8005/redis.conf
  6. redis-server ../8006/redis.conf

启动完成后对redis-trib.rb进行修改

用vi打开redis-trib.rb 搜索到这行(用“/”搜索Redis.new 就行)

  1. @r = Redis . new (:host=> @info[:host],:port=> @info[:port], :timeout => 60 )

修改这行增加密码

  1. @r = Redis . new (:host=> @info[:host],:port=> @info[:port], :timeout => 60password=>"123@123" )

这样就好了,我们就可以用redis-trib.rb创建集群了

3.创建集群

  1. ./redis-trib.rb create --replicas 1 192.168.174.10:8081,192.168.174.10:8082,192.168.174.10:8083,192.168.174.10:8085,192.168.174.10:8085,192.168.174.10:8086

其中 —replicas 1 这个1代表每个主机有多少个从机,在创建集群刚才中,会分配主机和从机。

当集群创建成功后我们就可以用登陆任何的redis服务器就行。

  1. redis-cli -p 8001 -a 123@123 -c
  2. -p 是端口, -a是密码 -c表示用集群的方式登陆

4.查看集群状态
登陆成功后可以用以下命令查看集群状态 可以看到每个节点的信息,他是主机还是从机

  1. cluster info