程序运行操作系统版本
- 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
创建集群
通过上述步骤,在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 #查看集群的状态
>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中的步骤,为集群设置密码