Centos7 搭建redis集群(优化版,亲测通过)

一、安装redis

安装集群需要Ruby命令,因此我们需要安装下Ruby,在集群机器中随便找一台执行即可

  • yum install ruby //安装ruby
  • yum install rubygems //安装rubygems,最新版本会自动安装
  • gem install redis

执行完成之后会发现报错了

 

 

redis需要的Ruby版本最低是2.2.2,但是CentOS7 yum库中ruby的版本支持到 2.0.0,

查看Ruby版本命令:ruby --version

可gem 安装redis需要最低是2.2.2,采用rvm来更新ruby:

 

  1. 安装RVM
    1. curl -L get.rvm.io | bash -s stable 
    2. find / -name rvm -print(此时可能出现问题)
    3. 如果没有出现上面的信息,执行如下图提示的命令执行的命令如上图提示的command
    4. 上面命令执行完毕后,继续执行 find / -name rvm -print,就可以看到上面的正确的截图了
  2. 使刚安装的rvm立即生效
    1. source /usr/local/rvm/scripts/rvm
  3. 查看rvm库中ruby版本
    1. rvm list known
  4. 安装一个ruby版本
    1. rvm install 2.4.1

  5. 使用一个ruby版本
    1. rvm use 2.4.1

       

  6. 设置默认版本
    1. rvm use 2.4.1 --default

       

  7. 卸载一个已知版本
    1. rvm remove 版本号
      
      比如原来的ruby版本如下:那么删除命令为:rvm remove 2.0.0p648

       

  8. 查看ruby版本
    1. ruby --version

       

  9. 到此为止ruby的新版本就安装完毕了,下面让我继续执行安装redis  执行命令 
    gem install redis

2、下载redis源码包并解压

wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2.4.tar.gz
cd redis-3.2.4

 

3、安装redis

make
make install PREFIX=/usr/local/redis
cp redis.conf /usr/local/redis/bin/redis.conf
chmod 777 /usr/local/redis/bin/redis.conf

 

4、启动redis(此为单机测试,只为搭建集群可跳过)

./redis-server redis.conf

 

5、验证(此为单机测试,只为搭建集群可跳过)

[root@host-172-16-80-177 bin]# ./redis-cli -p 6379
127.0.0.1:6379> get
(error) ERR wrong number of arguments for 'get' command
127.0.0.1:6379> set aa hzb
OK
127.0.0.1:6379> get aa
"hzb"

 

二、搭建redis集群(集群模式)

1、在/usr/local/下面创建redis-cluster目录

mkdir -p /usr/local/redis-cluster

2、复制/usr/local/redis/bin目录到redis-cluster里面并重命名为redis1

cd /usr/local
cp -r redis/bin redis-cluster/redis1
 

3、将redis1在同目录复制3份分别起名redis2,redis3,redis4,redis5,redis6(必须6个节点以上才能创建集群)


cd /usr/local/redis-cluster
[root@host-172-16-80-177 redis-cluster]# pwd
/usr/local/redis-cluster
[root@host-172-16-80-177 redis-cluster]# cp -r redis1 redis2
[root@host-172-16-80-177 redis-cluster]# cp -r redis1 redis3
[root@host-172-16-80-177 redis-cluster]# cp -r redis1 redis4
[root@host-172-16-80-177 redis-cluster]# cp -r redis1 redis5
[root@host-172-16-80-177 redis-cluster]# cp -r redis1 redis6

分别修改为redis-7001.conf,redis-7002.conf 后面依次到redis-7006.conf(最好下载到本地后修改后再上传)

以redis-7001为例:

 

daemonize yes 
bind 192.168.65.130          #(外部可访问IP)
Port 7001
logfile "./redis-7001.log"
databases 1
protected-mode no
pidfile /var/run/redis_7001.pid
cluster-enabled yes

 

4、将redis-trib.rb复到制redis-cluster目录里面

首先找到redis-trib.rb的位置,知道位置可以省去这一步

[root@bslsvrnexusp1 bin]# find / -name redis-trib.rb
/usr/local/Redis/redis-3.2.4/src/redis-trib.rb

然后进入redis-cluster文件夹,将redis-trib.rb复制到当前目录中
[root@host-172-16-80-177 redis-cluster]# cp /usr/local/Redis/redis-3.2.4/src/redis-trib.rb .
[root@host-172-16-80-177 redis-cluster]# ll
total 76
drwxr-xr-x 2 root root  4096 Oct 19 22:37 redis1
drwxr-xr-x 2 root root  4096 Oct 19 22:48 redis2
drwxr-xr-x 2 root root  4096 Oct 19 22:49 redis3
drwxr-xr-x 2 root root  4096 Oct 19 22:49 redis4
drwxr-xr-x 2 root root  4096 Oct 19 22:49 redis5
drwxr-xr-x 2 root root  4096 Oct 19 22:49 redis6
-rwxr-xr-x 1 root root 60852 Oct 19 22:52 redis-trib.rb

 

5、分别进入redis1,redis2,redis3,redis4,redis5,redis6里面执行(一定要遵循:分别进入

./redis-server redis-7001.conf
......

将6个节点启动

 

[root@host-172-16-80-177 redis4]# ps -ef|grep redis
root      3167     1  0 02:49 ?        00:00:00 ./redis-server 127.0.0.1:7001 [cluster]
root      3176     1  0 02:50 ?        00:00:00 ./redis-server 127.0.0.1:7002 [cluster]
root      3187     1  0 02:51 ?        00:00:00 ./redis-server 127.0.0.1:7003 [cluster]
root      3191     1  0 02:52 ?        00:00:00 ./redis-server 127.0.0.1:7004 [cluster]
root      3191     1  0 02:52 ?        00:00:00 ./redis-server 127.0.0.1:7005 [cluster]
root      3191     1  0 02:52 ?        00:00:00 ./redis-server 127.0.0.1:7006 [cluster]
root      3195  1852  0 02:52 pts/0    00:00:00 grep redis

 

6、用redis-trib.rb构建集群

cd /usr/local/redis-cluster/

[root@host-172-16-80-177 redis-cluster]# ./redis-trib.rb create --replicas 1 192.168.65.130:7001 
192.168.65.130:7002 192.168.65.130:7003 192.168.65.130:7004 192.168.65.130:7005 192.168.65.130:7006

 

 7、验证集群是否成功

[root@host-172-16-80-177 redis2]# ./redis-cli -h 192.168.65.130 -c -p 7002
192.168.65.130:7002> set hello helloword
-> Redirected to slot [866] located at 172.16.80.177:7001
OK
172.16.80.177:7006> get hello
-> Redirected to slot [866] located at 172.16.80.177:7001
"helloword"

 

备注:

密码设置:修改所有Redis集群中的redis-700X.conf文件加入: 
在:【port 700X】下一行加入下面两行
masterauth passwd123 
requirepass passwd123 

 

设置密码之后如果需要使用redis-trib.rb的各种命令 
如:./redis-trib.rb check 127.0.0.1:7000,则会报错ERR] Sorry, can’t connect to node 127.0.0.1:7000 
解决办法:vim /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis/client.rb,然后修改passord

class Client
    DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      :password => "passwd123",
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :inherit_socket => false
    }

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学编程的司马光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值