生产环境下redis基本上都是用的集群,毕竟单机版随时都可能挂掉,风险太大。这里我就来搭建一个基本的redis集群,功能够用但是还需要完善,当然如果有钱可以去阿里云买云数据库Redis版的,那个还是很不错的。
一、redis概述
2.1、下载和解压redis,这里安装redis-3.2.1版本的,3.0以下版本不支持集群。
[root@localhost ~]# cd /usr/local
[root@localhost local]# mkdir redis-cluster
[root@localhost local]# cd redis-cluster/
[root@localhost redis-cluster]# wget http://download.redis.io/releases/redis-3.2.1.tar.gz
[root@localhost redis-cluster]# tar -zxvf redis-3.2.1.tar.gz
2.2、编译安装
[root@localhost redis-cluster]# cd redis-3.2.1
[root@localhost redis-3.2.1]# make && make install
2.3、创建6个节点文件夹,每个文件夹我们就以每个端口号命名,方便管理
[root@localhost redis-3.2.1]# cd ..
[root@localhost redis-cluster]# mkdir 6379 6380 6381 6382 6383 6384
2.4、这里不需要复制整个redis,只复制redis.conf到对应文件夹
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6379/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6380/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6381/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6382/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6383/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6384/
2.5、修改每个redis.conf,这里我就拿6379的来做演示,其他的一样操作就好了
[root@localhost redis-cluster]# vi 6379/redis.conf
修改的内容和下面一样:
daemonize yes //设置yes,redis可以后台运行
pidfile /var/run/redis_6379.pid
bind 0.0.0.0 //原本绑定127.0.0.1,测试版本可以改成*
cluster-enabled yes //开启集群,把注释#去掉
port 6379 //端口号
cluster-config-file nodes_6379.conf //集群的配置,配置文件首次启动自动生成
cluster-node-timeout 5000 //请求超时,设置5秒够了
dir ./6379/ //方便管理
protected-mode no //改为no,可以外界远程访问,redis 3.2 才追加的一个功能
2.6、开启6个redis节点
[root@localhost redis-cluster]# redis-server 6379/redis.conf
[root@localhost redis-cluster]# redis-server 6380/redis.conf
[root@localhost redis-cluster]# redis-server 6381/redis.conf
[root@localhost redis-cluster]# redis-server 6382/redis.conf
[root@localhost redis-cluster]# redis-server 6383/redis.conf
[root@localhost redis-cluster]# redis-server 6384/redis.conf
可以查看是否开启成功,
[root@localhost redis-cluster]# ps -ef | grep redis
和下图所示一样就成功开启
三、开启集群模式
3.1、安装redis集群工具和环境
[root@localhost redis-cluster]# yum install ruby
[root@localhost redis-cluster]# yum install -y rubygems
还有一个,用gem这个命令来安装redis接口,gem是ruby的一个工具包
gem install redis
3.2、启动redis集群,服务器IP填自己的服务器地址
[root@localhost redis-cluster]# redis-3.2.1/src/redis-trib.rb create --replicas 1 服务器IP:6379 服务器IP:6380 服务器IP:6381 服务器IP:6382 服务器IP:6383 服务器IP:6384
安装过程中,会出现红色框内提示,不用管,直接yes就好了,然后安装ok。
四、开启防火墙(如果防火墙关闭的请忽略)
4.1、开放6个节点端口,这里是centos7.0版本的防火墙开启方法,7.0以下的自己解决下下,也简单的
[root@localhost ~]firewall-cmd --zone=public --add-port=6379/tcp --permanent
[root@localhost ~]firewall-cmd --zone=public --add-port=6380/tcp --permanent
[root@localhost ~]firewall-cmd --zone=public --add-port=6381/tcp --permanent
[root@localhost ~]firewall-cmd --zone=public --add-port=6382/tcp --permanent
[root@localhost ~]firewall-cmd --zone=public --add-port=6383/tcp --permanent
[root@localhost ~]firewall-cmd --zone=public --add-port=6384/tcp --permanent
4.2、重启防火墙
[root@localhost ~]firewall-cmd --reload
4.3、查看是否开放成功
[root@localhost ~]# iptables -L -n
这是开启成功的,还有如果firewall-cmd这个命令找不到就要自己先安装防火墙,安装的可以自己网上找下。
五、测试
我这边是在windows下测试的,连接时候注意,连接命令后面要加 -c
OK,到这里基本搞定了,但是还是需要完善,比如开机自启动啥的,这里我就不弄了,有兴趣的可以自己去捯饬下。