Redis集群配置以及踩坑实例

6 篇文章 0 订阅
2 篇文章 0 订阅

声明:本文章部分内容来源于网络 但都进过本人实际操作


Redis集群简介:

 

redis-cluster架构图

redis-cluster投票:容错

 


 

架构细节:

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.

(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点

我的Redis版本3.2

搭建:

开启集群模式配置Redis.conf

每个机器开启集群模式

cluster-enabled yes

 

若是在服务器上的Redis需要设置requirepass

 

 

集群模式下不能使用selaveof命令

 

需要6个redis实例。

需要运行在不同的端口7001-7006

 

第一步:创建6个redis实例,每个实例运行在不同的端口。需要修改redis.conf配置文件。配置文件中还需要把cluster-enabled yes前的注释去掉。

第二步:启动每个redis实例。

第三步:使用ruby脚本搭建集群。

没有ruby? 

Yum -y install ruby

yum install rubygems

创建集群

//创建集群

./redis-trib.rb create --replicas 1 192.168.25.133:6379 192.168.25.133:6380 192.168.25.133:6381 192.168.25.133:6389 192.168.25.133:6390 192.168.25.133:6391
//连接集群

[root@tracker_ip bin1]# ./redis-cli -h 192.168.25.133 -p 6379 -c

 


集群客户端命令(redis-cli -c -p port
 

集群

cluster info :打印集群的信息

cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息。

节点

cluster meet <ip> <port> :将 ip port 所指定的节点添加到集群当中,让它成为集群的一份子。

cluster forget <node_id> :从集群中移除 node_id 指定的节点。

cluster replicate <node_id> :将当前节点设置为 node_id 指定的节点的从节点。

cluster saveconfig :将节点的配置文件保存到硬盘里面。

(slot)

cluster addslots <slot> [slot ...] :将一个或多个槽( slot)指派( assign)给当前节点。

cluster delslots <slot> [slot ...] :移除一个或多个槽对当前节点的指派。

cluster flushslots :移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。

cluster setslot <slot> node <node_id> :将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给

另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。

cluster setslot <slot> migrating <node_id> :将本节点的槽 slot 迁移到 node_id 指定的节点中。

cluster setslot <slot> importing <node_id> :从 node_id 指定的节点中导入槽 slot 到本节点。

cluster setslot <slot> stable :取消对槽 slot 的导入( import)或者迁移( migrate)。

cluster keyslot <key> :计算键 key 应该被放置在哪个槽上。

cluster countkeysinslot <slot> :返回槽 slot 目前包含的键值对数量。

cluster getkeysinslot <slot> <count> :返回 count slot 槽中的键  

 


集群过程中遇到致命的问题:

问题1:槽被占用:

解决:

1:flushall   

2:cluster reset

3:rm -rf redis/rdb/*

问题2:一直提示Waiting for the cluster to join....

请看此文章:https://blog.csdn.net/zenmin2015/article/details/78020609


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值