redis-cluster集群搭建
1.环境准备,6个redis数据库节点
也就是准备6个配置文件,6匹马
redis-7000.conf
redis-7001.conf
redis-7002.conf
redis-7003.conf
redis-7004.conf
redis-7005.conf
#每个配置文件的内容,仅仅是端口的不同7000~7005
内容如下:
port 7000
daemonize yes
dir "/opt/redis/data/7000"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes #开启集群模式
cluster-config-file nodes-7000.conf #集群内部的配置文件
cluster-require-full-coverage no
#redis cluster需要16384个slot都正常的时候才能对外提供服务,换句话说,只要任何一个slot异常那么整个cluster不对外提供服务。 因此生产环境一般为no
2.快速生成6个节点的配置文件
1011 mkdir -p /opt/redis/data/{7000,7001,7002,7003,7004,7005}
1012 sed "s/7000/7001/g" redis-7000.conf > redis-7001.conf
1013 sed "s/7000/7002/g" redis-7000.conf > redis-7002.conf
1014 sed "s/7000/7003/g" redis-7000.conf > redis-7003.conf
1015 sed "s/7000/7004/g" redis-7000.conf > redis-7004.conf
1016 sed "s/7000/7005/g" redis-7000.conf > redis-7005.conf
3.启动6个redis节点(准备好了6匹马)
1019 redis-server redis-7000.conf
1020 redis-server redis-7001.conf
1021 redis-server redis-7002.conf
1022 redis-server redis-7003.conf
1023 redis-server redis-7004.conf
1024 redis-server redis-7005.conf
4.马儿准备好了,分配槽位,开始放入数据,查看数据流向
开启redis-cluster的集群功能,以及分配redis的slot槽位,基于ruby语言的脚本工具自动分配
1.下载ruby的解释器
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
2.解压缩ruby的源码包
tar -zxvf ruby-2.3.1.tar.gz
进入ruby的源码包目录,编译三部曲
cd ruby-2.3.1
./configure --prefix=/opt/ruby231
make && make install
3.配置ruby的环境变量
vim /etc/profile
写入PATH=""
4.读取这个/etc/profile
source /etc/profile
5.下载ruby操作redis的模块
wget http://rubygems.org/downloads/redis-3.3.0.gem
#安装ruby操作redis的模块
gem install -l redis-3.3.0.gem
6.一键分配redis集群的槽位
#查找一下这个命令的绝对路径
find / -name redis-trib.rb
#这个数字 1 代表,每个redis主库,只有一个redis从库
/opt/redis-4.0.10/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
7.开启了集群状态功能后,登录数据库,查看数据写入流向
/opt/redis-4.0.10/src/redis-trib.rb add-node --slave 127.0.0.1:7003 127.0.0.1:7000
8.防止redis-cluster主节点故障,可以搭配 redis-cluster + redis-sentinel ,用哨兵检测主节点状态,当主节点宕机,自动切换从节点为新的主库
1.redis-sentinel配置方式如下,检测三个主节点7000 7001 7002
port 27379
dir "/var/redis/data"
logfile "26379.log"
sentinel monitor master1 127.0.0.1 7000 2
sentinel monitor master2 127.0.0.1 7001 2
sentinel monitor master3 127.0.0.1 7002 2
sentinel down-after-milliseconds master1 30000
sentinel down-after-milliseconds master2 30000
sentinel down-after-milliseconds master3 30000
sentinel parallel-syncs master1 1
sentinel parallel-syncs master2 1
sentinel parallel-syncs master3 1
sentinel failover-timeout master1 180000
sentinel failover-timeout master2 180000
sentinel failover-timeout master3 180000
2.启动哨兵,检测cluster的主节点
redis-sentinel redis-26379.conf
3.杀死redis-cluster的主节点,查看从节点状态(是否自动重启),可以运行多个从节点,保证数据安全
来源:CSDN
作者:zp1412601533
链接:https://blog.csdn.net/zp1412601533/article/details/103745747