Redis4.0.9 集群

环境准备

centos1:192.168.138.131
centos2:192.168.138.132
centos3:192.168.138.133

每一台机器ip都要环境准备

1、环境准备
	Redis-trib.rb 需要ruby环境,先安装ruby环境
	yum -y  install zlib ruby rubygems

	安装ruby的redis
	gem install redis

	升级ruby安装的软件
	gem update --system
	gem update

	查看ruby安装的软件的结合
	gem list

	2	执行gem install redis(客户端)报错要求ruby版本2.0.0以上 则需要升级ruby版本在安装gem install redis
	gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3  
	curl -L get.rvm.io | bash -s stable
    source /usr/local/rvm/scripts/rvm
    ruby --version 
    rvm remove 2.0.0  
	rvm list known
	rvm install 2.3.3
	rvm use 2.3.3
	gem install redis

每一台机器安装redis 4.0.9.tar.gz

	cd /home
    tar -zxvf redis-3.2.8.tar.gz
	cd redis-4.0.9/src
	make && make install

每台机器redis 4.0.9.tar.gz 设置集群的配置 在131,132,133集群上进行一下操作:

	cd /redis-4.0.9
	mkdir redis_cluster/
	cd redis_cluster/
	cp redis.conf redis_cluster/redis_6379.conf
	cp redis.conf redis_cluster/redis_6380.conf	

每台机器修改redis的配置文件(6380的也需要)

	    cd redis_cluster/
		cat redis_6379.conf | grep 6379
		sed -i 's/6379/6380/g' /home/redis-4.0.9/redis_cluster/redis_6379.conf 
		port  6379
		#端口
		bind  192.168.138.131
		sed -i 's/127.0.0.1/192.168.138.131/g' /home/redis-4.0.9/redis_cluster/redis_6379.conf 
		#默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
		daemonize    yes
		#redis后台运行
		pidfile  /var/run/redis_6379.pid  #该行加上注解
		#pidfile文件对应6379
		cluster-enabled  yes
		#开启集群  把注释#去掉
		cluster-config-file  nodes_6379.conf
		#集群的配置  配置文件首次启动自动生成 6379
		cluster-node-timeout  15000
		#请求超时  默认15秒,可自行设置
		appendonly  yes

开启每一台机器上的redis的服务

redis-server /home/redis-4.0.9/redis_cluster/redis_6379.conf 
redis-server /home/redis-4.0.9/redis_cluster/redis_6380.conf

查看端口信息

netstat -ntlp | grep redis

防火墙开端口(每台机器)

firewall-cmd --permanent --zone=public --add-port=6379/tcp
firewall-cmd --permanent --zone=public --add-port=6380/tcp
firewall-cmd --permanent --zone=public --add-port=16379/tcp
firewall-cmd --permanent --zone=public --add-port=16380/tcp
systemctl restart firewalld.service	

创建集群(至少6个节点)某一台机器上

cd /home/redis-4.0.9/src
./redis-trib.rb create --replicas 1 192.168.138.131:6379 192.168.138.131:6380 192.168.138.132:6379 192.168.138.132:6380 192.168.138.133:6379 192.168.138.133:6380
出现以下信息为成功:
[OK] All nodes agree about slots configuration.
[OK] All 16384 slots covered.	
每个节点集群(2个节点)

设置集群认证:http://lee90.blog.51cto.com/10414478/1863243

redis-cli -h 192.168.138.131 -c -p 6379
config set masterauth guest
config set requirepass guest
config rewrite
注意事项:
1.如果是使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码
2.如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志
3.各个节点的密码都必须一致,否则Redirected就会失败
只有执行# redis-cli  -h 192.168.138.131 -p 6379 -c -a 'guest'  这样带认证的才能成功登陆到redis上。

测试集群(客户端)

	redis-cli -h 192.168.138.131 -c -p 6379 -a 'guest'
	SET xiaozhang man
	
	redis-cli -h 192.168.5.203 -c -p 6379
	keys * 
	get xiaozhang

重启客户端与服务

	redis-cli  -h 192.168.138.131 -p 6379 -c -a guest shutdown
	pkill -9 redis
	redis-server /home/redis-4.0.9/redis_cluster/redis_6379.conf
	redis-server /home/redis-4.0.9/redis_cluster/redis_6380.conf

检查集群(每个节点都要检查)

    cd /home/redis-4.0.9/src
	./redis-trib.rb check 192.168.138.131:6379 (每个节点都要检查)
	报错:[ERR] Sorry, can't connect to node 192.168.138.131:6379
	(每一台ip机器修改redis客户端密码)缺少密码,修改如下:
	gem environment #查看gem的环境
	cd /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.1/lib/redis
	vi client.rb(每台机器)
	#vi /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.1/lib/redis/client.rb
	找到 :password => nil,把nil改为"guest"
	
	重启集群后在执行check集群检查,如果报如下错误:
	[WARNING] Node 192.168.5.204:6379 has slots in importing state (6387).
	[WARNING] The following slots are open: 6387
	请执行:
	cd /home/redis-4.0.9/src
	./redis-trib.rb fix 192.168.138.131:6379
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值