redis集群部署

 程序运行操作系统版本

  • Linux系统版本:CentOS release 6.7
  • Linux内核版本:2.6.32-573.el6.x86_64

 

程序解释运行环境

   Ruby 2.5.1(6个节点中,只需要有一个节点安装Ruby环境)

   Redis 4.0.10

防火墙策略

     关闭防火墙或者添加防火墙策略  6379 和16379

 

 服务运行方式

     6个节点上分别启动redis-server,并在其中一个安装有Ruby环境的节点上运行redis-trib.rb脚本,创建集群。

 

 

部署方式:

  在每个服务节点上:

  上传:redis包

  1.      解压redis-4.0.10压缩文件

  tar –xf redis-4.0.10.tar.gz

  2.      进入redis-4.0.10目录,利用该目录下的makefile进行编译安装

  cd redis-4.0.10

  make

  make install

  完成后,在/usr/local/bin目录下会生成下面5个文件,由于该目录属于环境变量路径,在后面的操作中可以直接使用这些文件而不需要再次指定目录。

文件名

功能

redis-benchmark

性能测试工具

redis-check-aof

aof日志文件检测工具

redis-check-dump

rdb快照文件检测工具

redis-cli

客户端

redis-server

服务端

 

  3.      创建一个目录,用于存放Redis服务器相关文件

  mkdir /home/redis

  4.      在该目录下创建Redis配置文件

  cd /root/redis

  vi redis.conf

 

  redis.conf文件内容如下:

  port 6379

  bind (改为具体服务器地址)

  cluster-enabled yes

  cluster-config-file "node_6379.conf"     #多个集群节点在一起的话,必须要加端口号

  cluster-node-timeout 5000

  appendonly no

  dir "/root/redis"                           #集群数据文件落地位置,尽量放到大一点的目录里面

  pidfile "/root/redis/node_pid.pid"       #/root/redis/这个目录要存在

  daemonize yes

 

 

安装ruby

  在线安装:# yum install ruby 

  离线安装:# tar -zxvf ruby-2.4.1.tar.gz     #先下载ruby-2.5.1.tar.gz

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

       # make && make install    

       # ruby -v

 

安装redis

  在线安装:gem install redis

  离线安装:gem install -l redis     #先下载redis-3.2.1.gem

 

启动redis服务

  #redis-servce ./redis-6379.conf          #在redis配置文件的根目录下启动

 

添加防火墙端口

  #vim /etc/sysconfig/iptables

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 16379 -j ACCEPT

  redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口;集群总线端口为redis客户端连接的端口 + 10000
  如:redis端口为6379,则集群总线端口为16379;故,所有服务器的点需要开通redis的客户端连接端口和集群总线端口

 

创建集群

  通过上述步骤,在6个节点上分别启动Redis服务,然后在其中安装有Ruby的服务器节点上,运行Redis安装包中解压出来的集群部署脚本redis-trib.rb

  redis-trib.rb create --replicas 1 具体服务器地址:6379 具体服务器地址:6379 具体服务器地址:6379 具体服务器地址:6379 具体服务器地址:6379 具体服务器地址:6379

       将上面命令中的具体服务器地址替换为各个Redis服务节点的地址。脚本运行后,命令窗口中出现[OK] All 16384 slots covered,代表集群创建成功。6个节点将会以三个主节点、三个从节点的形式运行,每个从节点都会与其对应的主节点保持数据一致。

  注:集群创建以后,修改配置需要重新创建集群(重新建集群的时候需要先删除配置文件中的密码,否则会执行不成功)

 

 

设置集群密码

在创建完集群后,需要分别对每一个节点设置相同的密码。使用前面提到的/usr/local/bin目录下的redis-cli访问redis服务器,并热更新密码配置

  redis-cli –h 具体服务器地址 –p 6379

  > config set requirepass password                   #执行完需要输入密码执行master密码设置

  > config set masterauth password

  > config rewrite

使用ctrl + c退出redis-cli。注意替换部分的节点地址和端口。password替换为节点的实际访问密码。对集群的6个节点均执行上面的命令,为每个节点都设置相同的密码。

 

检查

  #  redis-cli -h IP***** -c -p 6379         #-c集群模式

  >set key值  value 

  >get  key值   或者   keys *查看所有值(这个只适合刚部署)

  查看集群状态:

  >cluster info       #查看集群的状态

  redis集群部署_第1张图片

  >cluster nodes     #查看集群的节点关系

 

 

 

异常排查

启动ruby脚本后,若创建集群失败,则

a) 将所有的redis服务全部停掉,先查看redis的进程id,可以查看指定的pidfile查看进程id也可以使用命令lsof -i:redis端口号查看进程,也可以使用ps -ef | grep redis 来查看进程id,然后使用kill -9杀死该进程,关闭redis实例。

b) 将redis目录下的nodes.conf和dump.rdb文件删除

c) 修改redis.conf文件,去掉其中的密码配置项requirepass和masterauth,使节点下次启动时无需密码即可访问,以便建立集群

d) 重启每台机器上的redis,然后再启动ruby脚本,重新创建集群

e) 执行3.8.3中的步骤,为集群设置密码

 

转载于:https://www.cnblogs.com/Tang-Yuan/p/9837783.html

你可能感兴趣的:(redis集群部署)