参考资料
https://www.cnblogs.com/gomysql/p/4395504.html
https://www.cnblogs.com/kerwinC/p/6611634.html
https://blog.csdn.net/h952520296/article/details/80986480
https://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=400315209&idx=3&sn=4db6b96503aa8f9726907ba75aae7050&scene=2&srcid=11039LoaHY6uXMvS9ZnEwSP7&from=timeline&isappinstalled=0#wechat_redirect
https://redis.io/topics/cluster-tutorial
redis3.0以上提供了cluster。 集群中分为主从两种角色,主参与全局的状态判断,从做为主的备份,如果主节点挂掉了,则从节点会进行接替。
数据分布是自己指定的,每个主中存有多少数据是自己来分的,所以不会动态平衡。但是一个有多个从的主节点,可以将自己的从让给没有从的主节点。
我们根据参考资料配置一套,三台虚拟机构成的三主三从的redis集群。
服务器 | 服务器序号 | 端口 | 路径 |
172.*.*.85 | 1 | 7201 | /opt/redis-cluster/7201 |
172.*.*.85 | 1 | 7202 | /opt/redis-cluster/7202 |
172.*.*.69 | 2 | 7203 | /opt/redis-cluster/7203 |
172.*.*.69 | 2 | 7204 | /opt/redis-cluster/7204 |
172.*.*.84 | 3 | 7205 | /opt/redis-cluster/7205 |
172.*.*.84 | 3 | 7206 | /opt/redis-cluster/7206 |
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
下载安装 redis
http://download.redis.io/releases/ 下查找合适的业务版本,并下载安装
wget http://download.redis.io/releases/redis-3.2.12.tar.gz tar zxvf redis-3.2.12.tar.gz cd redis-3.2.12 make
将redis加入系统命令中
make install
该命令会在ls /usr/local/bin 下生成redis的命令文件,后续就可以在任意目录中使用这些命令了
如果make不成功,可能使装gcc
也可能使缺少执行参数:make MALLOC=libc
redis基本配置(注意需要在对应的服务器上执行,对应的命令。1、2对应服务器1 3、4对应服务器2 5、6对应服务器3)
按照规划,在对应的服务器上创建对应的数据目录
mkdir -p /opt/redis-cluster/7201/data mkdir -p /opt/redis-cluster/7202/data mkdir -p /opt/redis-cluster/7203/data mkdir -p /opt/redis-cluster/7204/data mkdir -p /opt/redis-cluster/7205/data mkdir -p /opt/redis-cluster/7206/data
拷贝对应的配置文件到对应的目录下
cp /opt/redis-cluster/redis-3.2.12/redis.conf /opt/redis-cluster/7201 -rf cp /opt/redis-cluster/redis-3.2.12/redis.conf /opt/redis-cluster/7202 -rf cp /opt/redis-cluster/redis-3.2.12/redis.conf /opt/redis-cluster/7203 -rf cp /opt/redis-cluster/redis-3.2.12/redis.conf /opt/redis-cluster/7204 -rf cp /opt/redis-cluster/redis-3.2.12/redis.conf /opt/redis-cluster/7205 -rf cp /opt/redis-cluster/redis-3.2.12/redis.conf /opt/redis-cluster/7206 -rf
修改每个文件的以下配置项目
port 7201(每个节点的端口号) daemonize yes bind 172.*.*.85(绑定当前机器 IP) dir /opt/redis-cluster/7201/data/(数据文件存放位置) pidfile /var/run/redis_7201.pid(pid 7201和port要对应) cluster-enabled yes(启动集群模式) cluster-config-file nodes7201.conf(7201和port要对应,这个文件是redis自己使用的,我们不需要编辑) cluster-node-timeout 15000 appendonly yes
启动节点
在对应节点下运行启动命令
cd /opt/redis-cluster/720* redis-server redis.conf
启动成功后,访问对应的ip与端口,测试一下
redis-cli -h 172.*.*.85 -p 7201
keys
yum install ruby yum install rubygems gem install redis --version 3.2.2
https://www.jianshu.com/p/cf4b564deb1a gem离线包安装
创建集群
cd /opt/redis-cluster/redis-3.2.12/src redis-trib.rb create --replicas 1 172.*.*.85:7201 172.*.*.85:7202 172.*.*.69:7203 172.*.*.69:7204 172.*.*.84:7205 172.*.*.84:7206