【服务端】linux搭建redis集群

分享一次从头到尾的搭建redis的集群过程。

3主3从

图中所有的ip地址都是你自己电脑的ip。

一、安装

1.安装依赖包

yum install gcc-c++

由于我之前已经安装过了,所以不用再安装了,没安装过就等它自动完成

2.下载redis,需要注意的是版本需要在3.0及以上,才支持集群功能。

因为其他的虚拟机redis都是在opt目录下,所以我就在opt目录下下载了。(当然在哪个目录下载并不重要)

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

 下载中....

 下载好的安装包

 解压缩

tar -zxvf redis-5.0.5.tar.gz

 

 重命名

mv redis-5.0.5 redis

 3.编译redis

 进入redis目录

cd redis/

 make

make

 完成

 进入src

cd ./src/

执行 make install

make install

4.安装ruby

注意:必须为2.5版本及以上才能被redis使用,通过yum安装的话版本不适用于redis,所以此处通过手动安装。

1)下载ruby

两种方式

①wget方式下载

我还是切换到 opt 目录下

wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz

 可能会下载得很慢(当然如果你有一些特殊的软件可能会很快(-.-))

②网盘(我用你的)

ruby-3.0.2.tar.gz

提取码:1111

2)解压缩

tar -zxvf ruby-3.0.2.tar.gz

进入ruby目录

执行./configure --prefix=/usr/local/rvm //此目录为ruby最终安装目录

./configure --prefix=/usr/local/rvm

 执行 make && make install (时间稍微长一点)

make && make install

查看ruby版本

/usr/local/rvm/bin/ruby -v

3)将ruby写入环境变量

vi /etc/profile

 shift + g 到最后

//在末尾添加 ruby路径与 上步最终安装目录一致 且不要覆盖原有PATH

RUBY_HOME=/usr/local/rvm

export PATH=$PATH:$RUBY_HOME/bin

RUBY_HOME=/usr/local/rvm
export PATH=$PATH:$RUBY_HOME/bin

保存,退出,使文件生效。

source /etc/profile

source /etc/profile

 4)安装ruby所需要的zlib包

yum -y install zlib-devel

进入 ruby-3.0.2/ext/zlib

cd ruby-2.5.1/ext/zlib

执行

ruby ./extconf.rb

 如果出现

mkmf.rb can't find header files for ruby at /usr/share/include/ruby.h

Linux Centos 系统下执行 :yum install ruby-devel
Linux Ubuntu 系统下执行:apt-get install ruby-dev

 make

make

如果出现:make: *** 没有规则可以创建“zlib.o”需要的目标“/include/ruby.h”。 停止。

在Makefile顶部中的增加top_srcdir = ../..

vi Makefile

 

make完成

 make install

make install

 

 5)安装ruby所需要的openssl

yum install openssl-devel -y

进入openssl目录

cd ruby-2.5.1/ext/openssl

执行

ruby ./extconf.rb

 make

make

 make install

make install

 6)gem install redis(ruby的一个库)

gem install redis

 //出现异常:/usr/bin/gem: No such file or directory

//解决方案:ln -s /usr/local/rvm/bin/gem /usr/bin/gem

二、配置redis集群

因为要配置3主3从,理论上来说应该有6台物理机,因为物理机数量不够,就在一台虚拟机上模拟了。

进入redis目录

 1.创建一个文件夹,这里叫做redisCluster(redis集群),当然可以随意命名。

mkdir redisCluster

 进入该文件夹

因为需要3个主机、3个从机,所以需要创建6个文件夹

命名为 7000-7005,当然也可以起其他的名字,为了方便管理,建议如此。

mkdir 7000 7001 7002 7003 7004 7005

 2.给每个文件夹添加一个redis.conf(建议先改一个,然后再给每个文件夹复制)

将 /opt/redis/redis.conf(对应自己的目录)  复制 到 /opt/redis/redisCluster/7000 下

cp -r /opt/redis/redis.conf /opt/redis/redisCluster/7000

重命名

mv redis.conf redis7000.conf

mv redis.conf redis7000.conf

 3.修改配置文件

进入 7000目录下

 编辑配置文件

 需要修改

搜索bind修改 /bind

1)bind 127.0.0.1 192.168.x.x // 绑定的ip 地址+空格+本机地址 

注意:

在redis.conf NETWORK中 Examples下面还有两个bind被注释掉了,千万别搜索到直接改,你要改的是下边的那个bind。

bind 127.0.0.1 192.168.x.x

2)port

  修改为 7000

port 7000

3)后台启动

daemonize yes

daemonize yes

 4)pidfile /var/run/redis_7000.pid 

pidfile /var/run/redis_7000.pid

 5)开启集群

cluster-enabled yes

cluster-enabled yes

 6)cluster-config-file nodes_7000.conf //集群配置文件

cluster-config-file nodes-7000.conf

 7)请求超时时间设置(自己可根据需求设置)

cluster-node-timeout 5000

8)appendonly yes //aof日志开启 用于持久化

appendonly yes

 9)masterauth 密码 (如果没有要求,可以不设置)例如密码是 abc123

masterauth abc123

 10)requirepass 密码(如果没有要求,可以不设置) 与masterauth一致

requirepass abc123

 11)protected-mode 

 默认私有模式是开启的,这可能导致无法与springboot或springcloud的项目进行连接。

所以我要关闭私有模式,关闭了私有模式,需要注释掉bind,就是第一个设置的bind。

#bind 127.0.0.1 192.168.x.x
protected-mode no

 将bind注释 #bind 127.0.0.1 192.168.x.x

 好,到这,第一个配置文件就改完了,然后需要改剩下的5个,慢慢改吧 :)

当然你也可以快速的改,复制这个文件 7000/redis7000.conf 到 每个 7001 、7002等等的下面,并重命名redisXXXX.conf与当前文件夹一致。

最终看起来是这样的

然后从redis7001.conf开始修改,将其中的7000都换成7001就可以了。

vi 7001/redis7001.conf

 7000替换为7001

:%s/7000/7001

 3行上的3个替换

以此类推 redis7002.conf中全部将7000换成7002 、7003 、7004 、7005

4.启动redis各个进程

redis-server /opt/redis/redisCluster/7000/redis7000.conf

 使用当前方式,将6个进程全部启动

为了方便后续的启动,我将启动命令放到shell脚本中了。

 查看redis进程

ps -ef | grep redis

ps -ef | grep redis

 启动集群

redis-cli --cluster create 192.168.x.x:7000  192.168.x.x:7001  192.168.x.x:7002 192.168.x.x:7003 192.168.x.x:7004 192.168.x.x:7005 --cluster-replicas 1 -a abc123

 输入yes

 3主3从

 

 测试集群

redis-cli -c -p 7000 auth abc123

tcping 192.168.x.x 7000

]>>>tcping不是内部或外部命令,也不是可运行的程序
或批处理文件。百度搜索tcping,或者点击这个>tcping.exe

 把下载完的tcping.exe放到C:\Windows\System32下即可。

 如果出现 No response ,可能有以下几种情况。

1)防火墙

将端口添加到防火墙白名单中

firewall-cmd --permanent --zone=public --add-port=7000/tcp
                                                  7001
                                                  7002
                                                  7003
                                                  7004
                                                  7005
firewall-cmd --reload

可以ping通了

2)就是检查redisXXXX.conf中的 bind与protected-mode

种一棵树最好的时间是在10年前,其次是现在。

希望可以帮到你。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值