Redis集群部署

1.环境

三台Linux虚拟机服务器,对应的IP为:
192.168.0.11
192.168.0.12
192.168.0.13
每台服务器1主1从,共3主3从
相关安装包建议存储路径:/root/svr/
在这里插入图片描述

2.部署

下载安装忽略,7001 7002为更改后的端口号

先进行如下操作:
cd /usr/local/redis-5.0.5
创建集群配置文件夹:mkdir cluster-conf
cd cluster-conf
创建集群端口文件夹:mkdir 7001 mkdir 7002
cd 7001
复制配置文件:cp /root/svr/redis-5.0.5/redis.conf ./
Redis的log及持久化文件建议存储到磁盘空间较大的目录,本次存储路径:/root/svr/redis-cluster/

目录要求:
redis-5.0.5/cluster-conf/7001/redis.conf
redis-5.0.5/cluster-conf/7001/redis.log
redis-5.0.5/cluster-conf/7002/redis.conf
redis-5.0.5/cluster-conf/7002/redis.log

然后修改配置文件:vim redis.conf,将参数修改为以下的值:
port 7001
logfile “/root/svr/redis-5.0.5/cluster-conf/7001/redis.log”
dir /root/svr/redis-cluster/7001/ #事先创建好
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
bind 0.0.0.0
复制redis.conf至7002并修改端口及存储路径

启动:
/root/svr/redis-5.0.5/bin/redis-server /root/svr/redis-5.0.5/cluster-conf/7002/redis.conf &
/root/svr/redis-5.0.5/bin/redis-server /root/svr/redis-5.0.5/cluster-conf/7001/redis.conf &
注意:现在还没有完成集群的搭建

创建集群:
redis5以上版本用:
./redis-cli --cluster create --cluster-replicas 1 192.168.0.23:7001 192.168.0.29:7001 192.168.0.30:7001 192.168.0.23:7002 192.168.0.29:7002 192.168.0.30:7002

redis5以下版本用:
./redis-trib.rb create --replicas 1 192.168.0.23:7001 192.168.0.29:7001 192.168.0.30:7001 192.168.0.23:7002 192.168.0.29:7002 192.168.0.30:7002

以上命令的意思就是创建一个包含三个主节点和三个从节点的集群。
命令的意义如下:
1、 create 这表示我们希望创建一个新的集群。
2、选项 --replicas 1 表示我们希望为集群中的每个主节点创建一个从节点(百分比 选举master按先后顺序)。
3、之后跟着的其他参数则是实例的地址列表, 我们希望程序使用这些地址所指示的实例来创建新集群。
注:如果命令提示‘/usr/bin/env: ruby.exe: No such file or directory’不能执行,请 运行sudo apt install ruby

在客户端控制台中执行 cluster nodes命令
输出的内容含义如下:
节点ID
IP:端口
标志: master, slave, myself, fail
如果是个从节点, 这里是它的主节点的NODE ID
集群最近一次向节点发送 PING 命令之后, 过去了多长时间还没接到回复。.
节点最近一次返回 PONG 回复的时间。
本节点的网络连接情况
节点目前包含的槽:例如 127.0.0.1:7001 目前包含号码为 5960 至 10921 的哈希槽(slot)。

集群其他命令:

  1. 集群(cluster)
  2. CLUSTER INFO 打印集群的信息
  3. CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
  4. //节点(node)
  5. CLUSTER MEET 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
  6. CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。
  7. CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。
  8. CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。
  9. //槽(slot)
  10. CLUSTER ADDSLOTS [slot …] 将一个或多个槽(slot)指派(assign)给当前节点。
  11. CLUSTER DELSLOTS [slot …] 移除一个或多个槽对当前节点的指派。
  12. CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
  13. CLUSTER SETSLOT NODE <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
  14. CLUSTER SETSLOT MIGRATING <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。
  15. CLUSTER SETSLOT IMPORTING <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。
  16. CLUSTER SETSLOT STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。
  17. //键 (key)
  18. CLUSTER KEYSLOT 计算键 key 应该被放置在哪个槽上。
  19. CLUSTER COUNTKEYSINSLOT 返回槽 slot 目前包含的键值对数量。
  20. CLUSTER GETKEYSINSLOT 返回 count 个 slot 槽中的键。

3.问题

一、在执行./redis-trib.rb create报
/usr/bin/env: ruby: No such file or directory
解决:sudu apt install ruby

二、在执行./redis-trib.rb create报
./redis-trib.rb:24:in `require’: no such file to load – rubygems (LoadError)
from ./redis-trib.rb:24
解决:sudo apt install rubygems

三、在执行./redis-trib.rb create报
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require': no such file to load -- redis (LoadError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire’
解决:sudo gem install redis

四、如果telnet 192.168.0.xx 7001
如果telnet不通,但是ps -ef|grep redis可以看到服务或者本地客户端可以连接,远程客户端连接不了。这个时候就要修改redis.conf参数了
vim 7001(2)/redis.conf
注释bind或者改为bind 0.0.0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值