Linux搭建redist-cluster集群

搭建环境及准备安装包:  

redis-4.0.6.tar.gz        redis安装包   

ruby-2.4.1.tar.gz         Ruby环境(集群搭建需要用ruby创建, ruby环境在2.2以上。)

rubygems-2.7.7.tgz       redis-4.0.1.gem  (后面的是redis集群需要的ruby插件,rubygemsruby的一个包管理工具,通过rubygems安装redis-4.0.1.gem

安装gcczlibopenssl

卸载redis

首先把redis-server停了,然后把文件删除就行了.

1、停掉所有redis服务

ps -elf|grep redis

kill -9 [进程号]

2、删除文件

redis会在/usr/local/bin或你指定的目录下产生下面几个文件

    redis-benchmark

    redis-check-aof

    redis-check-dump

    redis-cli

redis-server

一、单机redis安装

创建rpm

cd /usr/local/

mkdir rpm

cd rpm

把附件中rpm包上传

rpm -Uvh ./*.rpm --nodeps --force

  

创建redis   

cd /usr/local/

mkdir redis

将redis-4.0.6.tar.gz上传至redis目录下

cd redis

解压

tar -vxf redis-4.0.6.tar.gz

编译文件

cd /usr/local/redis/redis-4.0.6

make    

成功如下:

 

安装

进入到/usr/local/redis/redis-4.0.6/src下查看文件是否生成redis-serverredis-cli

 

cd /usr/local/redis/redis-4.0.6/src

make install

成功如下:

 

建立俩个文件夹存放redis命令和配置文件

mkdir -p /usr/local/redis/etc

mkdir -p /usr/local/redis/bin

 

redis-4.0.6下的redis.conf复制到/usr/local/redis/etc/

cd /usr/local/redis/redis-4.0.6

cp redis.conf /usr/local/redis/etc/

移动redis-4.0.6/src里的几个文件到/usr/local/redis/bin/

cd /usr/local/redis/redis-4.0.6/src

mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli  redis-check-rdb   redis-server  /usr/local/redis/bin/

先改redis.conf

cd /usr/local/redis/etc

vi redis.conf

daemonize yes   修改这项为yes

 

启动并指定配置文件

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

 

查看状态

ps -ef |grep redis

 

简单检测

cd /usr/local/redis/bin

./redis-cli

 

退出客户端

quitexit

退出redis服务

1.pkill redis-server

2.kill 进程号

3./usr/local/redis/bin/redis-cli shutdown

二、集群搭建

创建文件夹并在其下创建2个文件夹

mkdir -p /usr/local/redis-cluster

mkdir 7001 7002

把之前的redis.conf 配置文件copy7001下,修改如下内容

cd /usr/local/redis/

cp etc/redis.conf ../redis-cluster/7001

cp etc/redis.conf ../redis-cluster/7002

进入7001

cd /usr/local/redis-cluster/7001

vi redis.conf

使用/命令搜索   例如:  /port

daemonize yes                   #redis后台运行

port 7001                       #端口7001 7002 7003 7004 7005 7006

 

bind 192.168.50.140            #默认ip127.0.0.1 需要改为其他节点机器可访问的ip

否则创建集群时无法访问对应的端口,无法创建集群

 

dir /usr/local/redis-cluster/7001   #数据文件存放位置对应7001 7002 7003 7004 7005 7006

 

设为如下:

 

cluster-enabled yes             #开启集群

 

cluster-config-file nodes-7001.conf  (nodes-7001最好跟portxxx对应上)  #集群配置信息,开启集群后自动生成

 

appendonly yes                  #开启aof日志,它会每次写操作都记录一条日志

 

cluster-node-timeout 15000 #请求超时时长

 

把修改后的配置文件分别copy到各个文件夹下,注意修改端口号,可以批量替换

cp redis.conf ../7002

批量修改

:%s/源字符串/目的字符串/g

:%s/7001/7002/g

 

提示3行修改

这时是可以启动redis

/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf

/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7002/redis.conf

查看状态

ps -ef |grep redis 

 

查看防火墙状态:

systemctl status  firewalld

 

开启状态:

然后开启端口号:

firewall-cmd --permanent --zone=public --add-port=7001/tcp

firewall-cmd --permanent --zone=public --add-port=17001/tcp

firewall-cmd --permanent --zone=public --add-port=7002/tcp

firewall-cmd --permanent --zone=public --add-port=17002/tcp

然后重启防火墙:

systemctl restart  firewalld

其他两台重复以上操作

安装ruby就是为了安装redis gem,而redis gem 是为了能运行redis-trib.rb

redis安装目录srcredis-trib.rb完成集群创建,redis-trib.rb命令需要安装gem redis模块才能运行,gem redis需要Ruby环境

1. Ruby离线安装

放入文件

cd /usr/local

mkdir ruby

cd ruby

把ruby-2.4.1.tar.gz包上传

tar -zxvf ruby-2.4.1.tar.gz

cd ruby-2.4.1

./configure --prefix=/usr/local/ruby      -prefix是将ruby安装到指定目录,也可以自定义

成功如下:

 

make && make install

成功如下:

 

这时用ruby命令是会报错的

创建软连接

ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby

查看版本信息

ruby -v

 

2.安装rubygems

首先下载安装包:https://rubygems.org/pages/download(包中已有)

cd /usr/local/

mkdir rubygems

把文件放到该目录下

tar -zxvf rubygems-2.7.7.tgz

cd rubygems-2.7.7

ruby setup.rb    

成功如下:

 

创建软连接gem

ln -s /usr/local/ruby/bin/gem /usr/bin/gem

 

3.安装ruby-redis插件

cd /usr/local/redis

把文件redis-4.0.1.gem放到该目录下

gem install redis-4.0.1.gem

成功如下:

 

启动一个集群

位置为

pwd

/usr/local/redis/redis-4.0.6/src

 创建新集群命令:命令create,选项--replicas 1意味着我们希望每个创建的主服务器都有一个从服 其他参数是我要用于创建新集群的实例的地址列表。

./redis-trib.rb create --replicas 1 192.168.0.115:7001 192.168.0.115:7002 192.168.0.115:7003 192.168.0.115:7004 192.168.0.115:7005 192.168.0.115:7006

按这个排mastersslave  同意时yes确定 如下:

 

成功如下:

 

连接集群

redis-cli -c -h 192.168.50.169 -p 7001  -c表示集群模式,指定ip地址和端口号

如:/usr/local/redis/bin/redis-cli -c -h 192.168.50.169 -p 7001

 

集群测试

cluster info  查看集群信息

 

cluster nodes(查看节点列表)

 

简单调试:可在各个服务器随便设值

192.168.50.141  中设值如下:

 

192.168.50.143  中设值如下:

 

192.168.50.140  中设值如下:

 

然后用RedisDesktopManager连接后可显示如下:

 

关闭时逐个关闭

/usr/local/redis/bin/redis-cli -c -h 192.168.50.140 -p 7001 shutdown

/usr/local/redis/bin/redis-cli -c -h 192.168.50.140 -p 7002 shutdown

/usr/local/redis/bin/redis-cli -c -h 192.168.50.141 -p 7003 shutdown

/usr/local/redis/bin/redis-cli -c -h 192.168.50.141 -p 7004 shutdown

/usr/local/redis/bin/redis-cli -c -h 192.168.50.143 -p 7005 shutdown

/usr/local/redis/bin/redis-cli -c -h 192.168.50.143 -p 7006 shutdown

添加密码

Redis-trib.rb工具构建的集群:

1,如果是使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码

2,如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志

3,各个节点的密码都必须一致,否则Redirected就会失败

步骤为:

/usr/local/redis/bin/redis-cli -c -h 192.168.0.115 -p 7001

config set masterauth passwdAb135790

config set requirepass passwdAb135790

auth passwdAb135790

config rewrite

exit

需要每个节点都设置密码并且保证一致

 

 

后边就不在截屏了!需要每个节点都设置密码并且保证一致

cd /usr/local/redis/redis-4.0.6/src

./redis-trib.rb check 192.168.0.115:7001    check:检查集群时报错

 

find / -name 'client.rb'     查找client.rb

 

vi /usr/local/ruby/lib/ruby/gems/2.4.0/gems/redis-4.0.1/lib/redis/client.rb

修改password

记得加 ” ” 双引号,不然会报错!

如下图:

 

./redis-trib.rb check 192.168.50.168:7005

 

直接进入时报错需要输入密码:

 

进入的时候直接加上密码:

/usr/local/redis/bin/redis-cli -c -h 192.168.50.226 -p 7001 -a passwd123456

 

关闭时也需要加上密码:

/usr/local/redis/bin/redis-cli -c -h 192.168.50.226 -p 7001 -a passwd123456  shutdown

原文地址:https://www.cnblogs.com/mayhh/p/9795642.html