本文不从redis集群原理级别讲解集群部署的细节,只记载如何部署集群。
根据官方的建议,推荐的集群模式是:三主三从的集群部署方式。
本文所用的linux系统是centos 7,64位系统。redis的版本是redis-4.0.8.tar.gz。
本文的redis版本是4.0以上的,后续安装集群需要安装ruby软件包的,如你的redis版本是5.0以上的,请忽略本文。
6台linux的主机ip:
192.168.13.21、192.168.13.22、192.168.13.23、192.168.13.24、192.168.13.25、192.168.13.26。
redis对应的端口号:
6379 6380 6381 6382 6383 6384。
防火墙需要关闭,执行一下命令:
systemctl status firewalld.service #查看防火墙
systemctl stop firewlld.service #关闭防火墙
禁止firewall开机启动
systemctl disable firewalld.service
1、单redis安装
- 上传redis-4.0.8.tar.gz到服务器特定目录。
- 解压上述目录的tar.gz到/usr/local/java/这个目录:tar -zxvf redis-4.0.8.tar.gz -C /usr/local/java/。
- yum -y install gcc #如果没有gcc编译容器则需要安装。检查gcc环境是否安装好:rpm -qa | grep gcc。
- 在/usr/local/java/下,编译,获取可执行文件:make。编译时如果出错:zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory,请执行命令:make MALLOC=libc。
- 在/usr/local/java/下,安装:make install。
- 修改redis.conf文件。如果你只安装单机版的redis,有些配置需要改动,改动的地方有:
- protected-mode no。修改之后可以远程访问。
- daemonize yes。修改之后可以后台启动。
- bind 127.0.0.1,这个需要注释掉:#bind 127.0.0.1。
- 题外话,如果后续搭集群,请根据上述操作搭好六台机器。
2、创建集群
1、创建集群配置、log日志、数据所在的文件夹:/usr/local/java/redis-4.0.8/cluster-conf,六台机器请进行同样操作。
2、在该目录下,第一台机器创建6379文件夹,命令:mkdir 6379。第二至第六台,依序创建6379 6380 6381 6382 6383 6384文件夹。
3、复制配置文件到/root/svr/redis-3.2.9/cluster-conf/6379(6380|6381|6382|6383|6384)目录下:
cp /usr/local/java/redis-4.0.8/redis.conf /usr/local/java/redis-4.0.8/cluster-conf/6379
cp /usr/local/java/redis-4.0.8/redis.conf /usr/local/java/redis-4.0.8/cluster-conf/6380
cp /usr/local/java/redis-4.0.8/redis.conf /usr/local/java/redis-4.0.8/cluster-conf/6381
cp /usr/local/java/redis-4.0.8/redis.conf /usr/local/java/redis-4.0.8/cluster-conf/6382
cp /usr/local/java/redis-4.0.8/redis.conf /usr/local/java/redis-4.0.8/cluster-conf/6383
cp /usr/local/java/redis-4.0.8/redis.conf /usr/local/java/redis-4.0.8/cluster-conf/6384
4、修改6379目录下redis.conf配置文件,重点修改的参数如下:
port 6379
pidfile /var/run/redis_6379.pid
logfile "/usr/local/java/redis-4.0.8/cluster-conf/6379/redis.log"
dir /usr/local/java/redis-4.0.8/cluster-conf/6379/
cluster-config-file nodes-6379.conf
cluster-enabled yes
cluster-node-timeout 5000
appendonly yes
5、其它五台机器,请在相应配置文件下,把6379替换成6380、6381、6382、6383、6384。
6、启动每台机器的redis:
redis-server /usr/local/java/redis-4.0.8/cluster-conf/6379/redis.conf &
查看状态是否:ps -ef|grep redis
7、创建集群
./src/redis-trib.rb create --replicas 1 192.168.13.21:6379 192.168.13.22:6380 192.168.13.23:6381 192.168.13.24:6382 192.168.13.25:6383 192.168.13.26:6384
无法创建,提示错误信息。查看是没有安装ruby这个插件。集群创建的程序文件是redis-trib,rb是由ruby来编写的,需要安装插件:
yum install ruby 或者 yum install -y curl ruby
后续操作需要执行下该命令:gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
安装ruby完毕接着执行上面的创建集群命令,报错,这时候需要安装一些和ruby与reids相关程序包和类库。
yum install rubygems
gem install reids
执行完毕后,一般会报以下提示:
ERROR: Error installing redis:
redis requires Ruby version >= 2.2.2.
报错,提示ruby版本需要大于2.2.2版本。CentOS7 yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2。
查看ruby的版本:
解决方法:升级ruby的版本。执行命令curl -L get.rvm.io | bash -s stable。
一般情况,由于某些原因,我们并不能正常访问该网站,所以需要执行一些操作。
通过修改hosts解决此问题。
查询该网站的真实IP
登录https://www.ipaddress.com/网站查询raw.githubusercontent.com的真实IP。
去hosts文件修改一些东西:
重启下该台服务器,执行curl -L get.rvm.io | bash -s stable命令。
有些时候,执行上述命令还需要执行一下操作:
根据提示增加引用
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
再一次获取rvm.io,就会成功。
查找配置文件:find / -name rvm.sh
使配置文件生效:source /etc/profile.d/rvm.sh
下载RVM依赖: rvm requirements
再次查看配置文件:find / -name rvm -print
查看rvm列表:rvm list known
安装 rvm 的 v2.4.6,速度较慢,耐心等待。
配置环境变量
删除旧版本的ruby
查看最终版本
[root@node001 ~]# ruby --version
ruby 2.4.6p354 (2019-04-01 revision 67394) [x86_64-linux]
执行命令:gem install reids
RVM (ruby-2.4.6)安装操作完毕。
六台服务器分别执行命令:
redis-server /usr/local/java/redis-4.0.8/cluster-conf/6379/redis.conf &
redis-server /usr/local/java/redis-4.0.8/cluster-conf/6380/redis.conf &
redis-server /usr/local/java/redis-4.0.8/cluster-conf/6381/redis.conf &
redis-server /usr/local/java/redis-4.0.8/cluster-conf/6382/redis.conf &
redis-server /usr/local/java/redis-4.0.8/cluster-conf/6383/redis.conf &
redis-server /usr/local/java/redis-4.0.8/cluster-conf/6384/redis.conf &
在21这台机执行命令:
./src/redis-trib.rb create --replicas 1 192.168.13.21:6379 192.168.13.22:6380 192.168.13.23:6381 192.168.13.24:6382 192.168.13.25:6383 192.168.13.26:6384
如有提示上图,代表集群安装成功。
下面测试集群效果: