最近在学习Redis集群 搭了几天(菜鸟) 终于搭建好了 今晚记录一下最近搭建的过程 官方推荐搭建集群最好是6个节点 而且是 3.0版本以上 所以我先了三台虚拟机 分别是 192.168.31.121 , 192.168.31.122 ,192.168.31.123 ,linux 系统是CentOS 7 分别在每个安装两个redis ,去中心化的搭建入题
一、开端口或者是关闭防火防 我是选择是关闭防火墙
systemctl stop firewalld
二、下载和解压 编译 安装 我的目录是 /usr/local/software/下
下载:
wget http://download.redis.io/releases/redis-3.2.11.tar.gz
解压
tar - zxvf redis-3.2.11.tar.gz
编译
cd redis-3.2.11
make
安装
cd src
make install
三、 修改配置 进入 redis-3.2.11
(1)在121 和122 以及123 机子各复制一份
命令 cp -r redis-3.2.11 /usr/local/software/redis-3.2.11-2
cd /redis-3.2.11/
修改配置文件vim redis.conf
###121 第一个节点
bind 192.168.31.121 ##本机ip
port 7000
daemonize yes ###启动后台运行
pidfile /var/run/redis_7000.pid ##非必须改
appendonly yes
cluster-enabled yes ##开启集群
cluster-config-file nodes-7000.conf ##非必须改 只是防止残留旧数据 影响搭建集群
cluster-node-timeout 15000 ##超时时间 5s
###121 第二个节点
bind 192.168.31.121 ##本机ip
port 7001
daemonize yes ###启动后台运行
pidfile /var/run/redis_7001.pid ##非必须改
appendonly yes
cluster-enabled yes ##开启集群
cluster-config-file nodes-7001.conf ##非必须改 只是防止残留旧数据 影响搭建集群
cluster-node-timeout 15000 ##超时时间 5s
###121 第一个节点
bind 192.168.31.122 ##本机ip
port 7002
daemonize yes ###启动后台运行
pidfile /var/run/redis_7002.pid ##非必须改
appendonly yes
cluster-enabled yes ##开启集群
cluster-config-file nodes-7002.conf ##非必须改 只是防止残留旧数据 影响搭建集群
cluster-node-timeout 15000 ##超时时间 5s
###122 第二个节点
bind 192.168.31.122 ##本机ip
port 7003
daemonize yes ###启动后台运行
pidfile /var/run/redis_7003.pid ##非必须改
appendonly yes
cluster-enabled yes ##开启集群
cluster-config-file nodes-7003.conf ##非必须改 只是防止残留旧数据 影响搭建集群
cluster-node-timeout 15000 ##超时时间 5s
###123 第一个节点
bind 192.168.31.123 ##本机ip
port 7004
daemonize yes ###启动后台运行
pidfile /var/run/redis_7004.pid ##非必须改
appendonly yes
cluster-enabled yes ##开启集群
cluster-config-file nodes-7004.conf ##非必须改 只是防止残留旧数据 影响搭建集群
cluster-node-timeout 15000 ##超时时间 5s
###123 第二个节点
bind 192.168.31.123 ##本机ip
port 7005
daemonize yes ###启动后台运行
pidfile /var/run/redis_7005.pid ##非必须改
appendonly yes
cluster-enabled yes ##开启集群
cluster-config-file nodes-7005.conf ##非必须改 只是防止残留旧数据 影响搭建集群
cluster-node-timeout 15000 ##超时时间 5s
###所有的节点配置完成
四 启动所有的节点 redis 进入 cd /usr/local/software/redis-3.2.11-2/src
./redis-server ../redis.conf ##启动
ps -ef |grep redis ##查看是启动了
五加入集群中 提前是要安装对象依赖和环境
命令
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis --version 3.0.0
##加入集群 任意一个节点执行
./redis-trib.rb create --replicas 1 192.168.31.121:7000 192.168.31.121:7001 192.168.31.122:7002 192.168.31.122:7003 192.168.31.123:7004 192.168.31.123:7005
然后会出现一个提示 Can I set the above configuration? (type 'yes' to accept): yes
输入yes 回车
最后显示
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
说明集群成功
然后执行以下
./redis-cli -c -h 192.168.31.121 -p 7000
就可以输入redis对应命令
总结:
在搭建过程中遇到很多问题
比如
错误提示是
slot插槽被占用了(这是 搭建集群前时,以前redis的旧数据和配置信息没有清理干净。)
解决方案是
最好是在搭建之前要清理所有的节点的数据
用redis-cli 登录到每个节点执行 flushall 和 cluster reset 就可以了。