redis-cluster集群

谁说我不能喝 提交于 2020-01-14 09:09:32

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的主节点,查看从节点状态(是否自动重启),可以运行多个从节点,保证数据安全

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!