《Linux运维总结:Centos7.6部署二进制redis4.0.10集群》



一、 下载安装包

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

二、安装redis

Setp1:cd /data/pkgs && tar axf redis-4.0.10.tar.gz && cd redis-4.0.10
Setp2:make
Setp3:make install

三、初始化redis

这里端口规划为7001、7002、7003、7004、7005、7006,当前集群默认是cluster模式,三主三从。

./utils/install_server.sh

如下图所示:
在这里插入图片描述
说明:
1、分别在需要部署redis的主机上执行上述脚本,根据实际情况设置,端口、配置文件路径、日志文件路径、数据目录可以自定义。
2、这里需手动填写redis-server命令路径。


四、修改配置文件

bind 0.0.0.0
daemonize yes
appendonly yes
requirepass "AhspHJ2l0ychcves"
masterauth "AhspHJ2l0ychcves"  #这里必须添加,不然主从故障无法切换
cluster-enabled yes
cluster-node-timeout 15000
说明:每个redis实例配置文件均需要修改。

五、系统参数修改

echo "65535" > /proc/sys/net/core/somaxconn
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1

六、安装ruby

说明:ruby版本必须高于2.3.0
cd /data/pkgs
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.5.tar.gz
tar -zxf ruby-2.5.5.tar.gz && cd ruby-2.5.5
./configure && make && make install 
/usr/local/bin/gem install redis

问题一、使用gem install redis安装时报错

ERROR:  Loading command: install (LoadError)
	cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

解决方法

进入ruby安装目录
Setp1:yum -y install zlib-devel
Setp2:
cd /data/pkgs/ruby-2.5.5/ext/zlib/
/usr/local/bin/ruby ./extconf.rb
make
vim Makefile
#zlib.o: $(top_srcdir)/include/ruby.h   #找到此行修改为下面一行的代码,保存退出
zlib.o: ../../include/ruby.h
Setp3:
make && make install

问题二、使用gem install redis安装时报错

ERROR:  While executing gem ... (Gem::Exception) Unable to require openssl
        install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources

解决方法

Setp1:cd /data/pkgs/ruby-2.5.5/ext/openssl
Setp2:yum install openssl-devel -y
Setp3:/usr/local/bin/ruby ./extconf.rb
Setp4:在Makefile顶部中的增加top_srcdir = ../..
vim Makefile(如下图所示)
Setp5:make && make install

Setp4截图如下:
在这里插入图片描述


七、构建集群

cp /usr/local/bin/redis-* /usr/bin
cp /usr/local/bin/ruby /usr/bin
/data/pkgs/redis-4.0.10/src/redis-trib.rb create --replicas 1 x.x.x:7001 x.x.x:7002 x.x.x:7003 x.x.x:7004 x.x.x:7005 x.x.x:7006

如下图所示:
在这里插入图片描述
至此,redis4.0.10 cluster集群部署完成。

问题一:构建redis集群失败

/usr/bin/env: ruby: No such file or directory
解决方法:cp /usr/local/bin/ruby /usr/bin

问题二:构建redis集群失败

Traceback (most recent call last):
	2: from /data/pkgs/redis-4.0.10/src/redis-trib.rb:25:in `<main>'
	1: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- redis (LoadError)

解决方法:
cp /usr/local/bin/gem /usr/bin
gem install redis

问题三:构建redis集群失败

>>> Creating cluster
[ERR] Sorry, can't connect to node 172.18.1.112:7001

解决方法:
在这里插入图片描述

vim /usr/local/lib/ruby/gems/2.5.0/gems/redis-4.2.5/lib/redis/client.rb

如下图所示:
在这里插入图片描述


八、验证集群是否可用

说明:连接集群不管是写入数据还是读取数据都需要加入-c的参数。
a、往集群里面写入一百条数据。

for line in {1..100};do redis-cli -h 127.0.0.1 -p 7001 -c -a AhspHJ2l0ychcves set ops_${line} ${line}; done

b、读取数据看一下是否能读取到

for line in {1..100};do redis-cli -h 127.0.0.1 -p 7001 -c -a AhspHJ2l0ychcves get ops_${line}; done

九、验证集群切换

a、关闭7001

redis-cli -h 127.0.0.1 -p 7001 -c -a AhspHJ2l0ychcves shutdown

等待2分钟

redis-cli -h 127.0.0.1 -p 7002 -c -a AhspHJ2l0ychcves

在这里插入图片描述
发现主节点切换成功

b、再次验证数据是否正常

for line in {1..100};do redis-cli -h 127.0.0.1 -p 7001 -c -a AhspHJ2l0ychcves get ops_${line}; done

总结

更多详细内容请参考:Linux运维实战总结

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值