redis集群搭建

两台机器(由于个人电脑资源有限,最多两台机器)

1.下载redis 

各版本地址(进入官网,点击最新版本下载按钮,复制出来下载连接,去掉最后的版本号,例如:http://download.redis.io/releases/redis-5.0.3.tar.gz)剩下的地址:http://download.redis.io/releases/

本次安装选择3.2.12

参考文档:https://redis.io/topics/cluster-tutorial

注意:该文档中没有明确的说明redis集群最少是3个主节点3个从节点,但是却有一段话来描述:

一:下载 

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

#解压
tar -zxfv redis-3.2.12.tar.gz

二:新建空目录 redis-cluster

#机器1:
mkdir redis-cluster
cd redis-cluster
mkdir 7000 7001 7002 #作为主节点

安装 gem gem 是ruby提供 一般要求ruby的版本是2.2以上,请自行google进行安装。

三:进入解压后的redis目录进行安装

sudo make #会向根目录写入一些文件,需要root权限,如果你的登录用户是root则不必要加sudo
sudo make install

 
#gem 安装 大致步骤
1、yum -y install ruby rubygems #可能会出现版本较低错误
2.如果版本低:
yum install centos-release-scl-rh #会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源
yum install rh-ruby23  -y    #直接yum安装即可  
scl  enable  rh-ruby23 bash   #必要一步
ruby -v                          #版本查看

3.执行  gem install redis

编译后的src文件中的redis-trib.rb,redis-server 等redis常用命令 拷贝到 /usr/local/bin下 将src和 redis.conf 拷贝到7000 7001 7002 文件夹下

修改每个文件夹下redis.conf配置文件

bind 192.168.56.103
port 7000(每个文件夹下各自的端口不一样)
cluster-config-file nodes-7000.conf
requirepass 密码
cluster-enabled yes
cluster-node-timeout 5000
appendonly yes

在另一台机器上进行上述下载、解压、移动文件等同样操作,修改配置文件(redis.conf)时切接注意ip和端口

分别进入目录启动redis (后期肯定统一启动shell脚本)

redis-server 7000/redis.conf

将其中一台机器作为集群管理机,启动集群

redis-trib.rb  create --replicas 1 192.168.56.107:7000 192.168.56.107:7001 192.168.56.107:7002 192.168.56.106:7003 192.168.56.106:7004 192.168.56.106:7005

此时报错误:Sorry, can't connect to node

因为我连接redis时添加了密码,所以修改ruby中,每个人的位置应该是不一样的,请自行搜索(find / -name client.rb)

vi /home/sw/.rvm/gems/ruby-2.5.3-rubby/gems/redis-4.1.0/lib/redis/client.rb 
#注意:password 值加''号

此时再次执行:

redis-trib.rb  create --replicas 1 192.168.56.107:7000 192.168.56.107:7001 192.168.56.107:7002 192.168.56.106:7003 192.168.56.106:7004 192.168.56.106:7005

依旧报错,错误如下:MASTER aborted replication with an error: NOAUTH Authentication required 

查看配置文件中有masterauth 所以尝试修改服务器中的配置文件,将该配置项打开填写设置的redis密码,个人认为密码最好是统一的。删除两台机器已经产生的文件,再次执行集群启动命令(先启动redis)

>>> Performing Cluster Check (using node 192.168.56.107:7000)
M: 0d81a13e906804289ae0f52b0cdbfeb8e4aa1c9a 192.168.56.107:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: e5ff70d8056babb32cf6c3a9b72e78c76b00c2b3 192.168.56.107:7002
   slots: (0 slots) slave
   replicates 1297ffde2a33a3e7aac8cb911d913d0a489d5325
M: e16e3e65a0d830b53ababc0ec1b6e320295aed76 192.168.56.107:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: 1297ffde2a33a3e7aac8cb911d913d0a489d5325 192.168.56.106:7003
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 9557032dafb1a1f604ff430da7589e65d5375765 192.168.56.106:7004
   slots: (0 slots) slave
   replicates 0d81a13e906804289ae0f52b0cdbfeb8e4aa1c9a
S: 8302614f9b24d0f7ac4d6cc350c2bd7e085ace96 192.168.56.106:7005
   slots: (0 slots) slave
   replicates e16e3e65a0d830b53ababc0ec1b6e320295aed76

四:至此集群启动完成,我们进行验证登录其中一台机器:

redis-cli -h 192.168.56.107 -p 7000 -a admin

出现错误:(error) MOVED 5798 192.168.56.106:7003,有可能redis换成集群之后,客户端操作发生变化,查看文档发现登录命令相对于单机增加了-c命令:

  • redis-cli与开始时在GitHub上的Redis的存储库的不稳定分支工具实现了一个非常基本的集群支持-c开关。

再次登录:

redis-cli -c -h 192.168.56.107 -p 7000 -a admin

#成功之后,随便进行设置一个key value信息, 会看到 
# -> Redirected to slot[5789] located 192.168.56.106:7003
# "value" 
#在其它机器登录后,在其它机器则可获取到该name信息

至此redis集群简单部署完成,其中ruby是关键,网上的例子很多,请自行参考!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值