redis集群部署

下载安装redis

安装redis需要gcc依赖

yum install gcc
cd /usr/local/
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
tar -zxvf /redis-4.0.1.tar.gz
cd redis-4.0.1
make && make install

安装环境

使用集群命令需要安装ruby,ruby版本需要大于2.2.2

yum -y install ruby ruby-devel rubygems rpm-build

升级ruby

yum install curl
curl -L get.rvm.io | bash -s stable
rvm list known
rvm install  2.4.0
rvm use  2.4.0
ruby  --version

安装redis-rb

gem install redis

一、创建redis节点

cd /usr/local
#创建集群目录
mkdir redis_cluster
cd redis_cluster
#创建集群节点
mkdir 7000 7001 7002
cp /usr/local/redis-4.0.1/redis.conf  ./7000/
cp /usr/local/redis-4.0.1/redis.conf  ./7001/
cp /usr/local/redis-4.0.1/redis.conf  ./7002/

以同样的方式在另一台服务器上创建三个节点

cd /usr/local
#创建集群目录
mkdir redis_cluster
cd redis_cluster
#创建集群节点
mkdir 7003 7004 7005
cp /usr/local/redis-4.0.1/redis.conf  ./7003/
cp /usr/local/redis-4.0.1/redis.conf  ./7004/
cp /usr/local/redis-4.0.1/redis.conf  ./7005/

修改配置文件

# 绑定本机IP 内网IP或者外网IP必须在前面
bind 192.168.xxx.xxx 127.0.0.1
# 设置端口 7000 700x
port 7000
# 程序后台运行
daemonize yes
# pid文件地址
pidfile /var/run/redis_7000.pid
# 日志文件
logfile "7000.log"
# 启用集群
cluster-enabled yes
# 集群配置文件(自动生成)
cluster-config-file nodes-7000.conf
# 请求超时(毫秒)
cluster-node-timeout 15000
# aof日志开启  有需要就开启,它会每次写操作都记录一条日志
appendonly  yes

二、启动redis节点

服务器1

cd /usr/local/redis_cluster/
cd 7000
redis-server  redis.conf
cd ../7001
redis-server  redis.conf
cd ../7002
redis-server  redis.conf

服务器2

cd /usr/local/redis_cluster/
cd 7003
redis-server  redis.conf
cd ../7004
redis-server  redis.conf
cd ../7005
redis-server  redis.conf

三、创建集群

注意关闭防火墙或者开放对应端口

/usr/local/redis-4.0.1/src/redis-trib.rb  create  --replicas  1  192.168.137.128:7000 192.168.137.128:7001  192.168.137.128:7002 192.168.137.129:7003  192.168.137.129:7004  192.168.137.129:7005

四、常用命令

添加节点

/usr/local/redis-4.0.1/src/redis-trib.rb add-node 192.168.137.129:7006 192.168.137.128:7000

启动redis

redis-server  redis_cluster/7000/redis.conf

停止redis

redis-cli -c -p 7000 shutdown

五、测试

六、出现的问题

创建集群时报错

1、无法连接节点

Sorry, can't connect to node 192.168.xxx.xxx

停止redis服务,查看conf配置文件

# 绑定本机IP 内网IP或者外网IP必须在前面
bind 192.168.xxx.xxx 127.0.0.1

2、节点不为空

[ERR] Node 192.168.137.128:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

停止redis服务,删除redis启动生成的nodes.conf、appendonly.aof、dump.rdb等文件

重新启动redis,重新执行创建集群命令

/usr/local/redis-4.0.1/src/redis-trib.rb  create  --replicas  1  192.168.137.128:7000 192.168.137.128:7001  192.168.137.128:7002 192.168.137.129:7003  192.168.137.129:7004  192.168.137.129:7005

3、节点挂掉后重启,集群中节点状态一直是fail

检查后发现是防火墙问题,系统重启后防火墙也随之启动,关闭防火墙后集群恢复正常

systemctl stop firewalld
posted @ 2018-10-17 11:34  苏生不语  阅读(237)  评论(0编辑  收藏  举报