Redis集群部署文档(CentOS7

要让集群正常工作至少要3个主节点,这里需要创建6个节点,三个节点,三个从节点。(因为硬件资源有限,所以在一台机器上使用不同的端口,来模拟集群模式。)

192.168.31.99:7000

192.168.31.99:7001

192.168.31.99:7002

192.168.31.99:7003

192.168.31.99:7004

192.168.31.99:7005

这里使用 Redis-3.2.4 版本,在之前的 2.x 版本中是不支持集群模式的。

上传到服务器,解压然后编译。(我上传的目录是 /usr/local/locahost/)

cd /usr/local/localhost/
tar -xvf redis-3.2.4.tar.gz
mv redis-3.2.4 redis3
cd redis3
make && make install

安装完成以后,在 /usr/local/bin/ 目录下可以看到 redis-serverredis-cli 等文件。

创建六个目录用于存储6个 redis 实例的数据和配置。

cd /usr/local/localhost
mkdir cluster
cd cluster
mkdir 7000 7001 7002 7003 7004 7005

修改配置文件,首先复制一个 redis 的默认配置文件到集群文件夹中,然后按实际修改。

cp /usr/local/localhost/redis3/redis.conf /usr/local/localhost/cluster/
cd /usr/local/localhost/cluster
vi redis.conf

============== 修改各节点共同的配置信息 ===================

daemonize yes # 配置节点以守护进程方式运行,也可以理解为后台运行。
cluster-enabled yes # 开启集群模式
cluster-config-file nodes.conf # 集群配置文件路径
cluster-node-timeout 5000 # 节点超时时间
appendonly yes
protected-mode no # 关闭保护模式
# bind 127.0.0.1 # 注释掉 _ip_ 绑定,否则只有被绑定的 _ip_ 可以访问。

下一步,复制配置文件到各节点文件夹内。

cp /usr/loca/localhost/cluster/redis.conf /usr/local/localhost/cluster/7000/
cp /usr/loca/localhost/cluster/redis.conf /usr/local/localhost/cluster/7001/
cp /usr/loca/localhost/cluster/redis.conf /usr/local/localhost/cluster/7002/
cp /usr/loca/localhost/cluster/redis.conf /usr/local/localhost/cluster/7003/
cp /usr/loca/localhost/cluster/redis.conf /usr/local/localhost/cluster/7004/
cp /usr/loca/localhost/cluster/redis.conf /usr/local/localhost/cluster/7005/

修改各节点下 redis.conf 中的 port 参数,值与个文件夹的名字相同。

下一步,分别启动这个六个实例。

cd /usr/local/localhost/cluster/7000/
redis-server redis.conf
cd /usr/local/localhost/cluster/7001/
redis-server redis.conf
cd /usr/local/localhost/cluster/7002/
redis-server redis.conf
cd /usr/local/localhost/cluster/7003/
redis-server redis.conf
cd /usr/local/localhost/cluster/7004/
redis-server redis.conf
cd /usr/local/localhost/cluster/7005/
redis-server redis.conf

启动之后,查看 redis 的运行情况,使用 ps -ef | grep redis 命令,如下图所示。

redis的cluster集群应用场景 redis cluster集群部署_运维

下一步,创建集群

cd /usr/local/localhost/redis3/src/
./redis-trib.rb  create --replicas 1 192.168.31.99:7000 192.168.31.99:7001 192.168.31.99:7002 192.168.31.99:7003 192.168.31.99:7004 192.168.31.99:7005

执行上面的命令的时候可能会报错,因为是执行的ruby的脚本,需要ruby的环境

错误内容:/usr/bin/env: ruby: No such file or directory

所以需要安装ruby的环境,这里推荐使用yum install ruby安装

yum install ruby

然后再执行创建集群命令,还会报错,提示缺少rubygems组件,使用yum安装

错误内容:

./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)from ./redis-trib.rb:24

yum install rubygems

再次执行创建集群命令

还会报错,提示缺少redis的第三方接口

错误内容: cannot load such file -- redis

gem install redis

继续再次执行集群创建命令

redis的cluster集群应用场景 redis cluster集群部署_redis_02

提示创建策略是否正确,输入 yes

出现下图中的 OK 则集群创建成功

redis的cluster集群应用场景 redis cluster集群部署_数据库_03

至此 redis 集群搭建成功,使用命令 redis-cli -c -p 7000 -h 192.168.31.99 进入集群环境。

PS:集群中不能设置密码,不然在执行创建集群命令的时候无法创建成功。另外,如果使用 Java 中的 Jedis 操作群集,也会出现问题。暂时来说,Jedis 不支持密码操作,所以,即使在集群启动成功后,可以设置密码,但是 Jedis 也是不支持的。