https://redis.io/topics/cluster-tutorial
一,使用create-cluster实现
老版本需要使用redis-trib的ruby程序
无主模型的哨兵模式的多节点自动分区
,每个对槽位的管理。
/usr/local/redis-5.0.7/utils/create-cluster
README太详细了,跟着操作吧
createcuster是一个用于轻松启动大量Redis的小脚本配置为在群集模式下运行的实例。它的主要目标是允许手动在Redis集群不易复制的条件下进行测试
单元测试,例如当需要大量实例来触发
一个给定的bug。
该工具还可以用于在一个数据库中轻松创建多个实例Redis集群以便对系统进行一点实验。
要创建群集,请执行以下步骤:
1.编辑create cluster并更改起始/结束端口,具体取决于要创建的实例数。
2.使用“./create cluster start”运行实例。
3.使用“./create cluster create”执行redis cli–cluster create,以便将创建一个实际的Redis集群。
4.现在你可以玩集群了。在当前目录中创建每个实例的AOF文件和日志。
要停止群集:
1.使用“./create cluster stop”停止所有实例。在你停止这个实例之后
如果您改变主意,可以使用“./create cluster start”重新启动它们。
2.使用“./create cluster clean”删除所有AOF/log文件,然后用clea重新启动n环境。
1,修改文件
PORT=30000
TIMEOUT=2000
NODES=6 #启动6个节点
REPLICAS=1 #副本数是1 ,3主3从
2,启动
./create cluster start
3,分槽位
./create cluster create
4,测试
无主模型的路由原理
redis-cli -p 30001
客户端连接谁无所谓,但是算法解决分槽点落值到哪个节点上的事情,这个是根据error报错的关键字MOVEN来实现的。
但是普通客户端只能识别这个报错,需要使用Cluster模式的连接方式。
redis-cli -c -p 30001
set k1 1
设置k1 :计算出k1落点30003,跳转到节后创建k1;
获取k1 :由于现在在对应的节点上,直接返回
设置k2 :计算出k1落点30001,跳转后创建;
获取k2 :由于现在在对应的节点30001上,直接返回;
获取k1 :计算出k1落点是30003,自身的节点是30001,跳转到30003后返回;
无主模型支持事务么?
watch k2 :计算出在01节点上,跳转后执行指令;
开启事务multi:命令也发给01
更新k1的值:它路由到03节点上去,执行set指令
exec : 报错
因为你是在01上开启的事务,在03结束,03上没有开启事务的标识
那集群模式就不能实现事务了么?
根据之前的观察来看,事务出错的原因是由于算法计算key的落点不同,导致事务命令不能落在同一个节点上导致的,那我们可以通过HashTag,通过把需要事务执行的key落在同一个节点上来实现。操作走起
所有指令都落在了02这个节点上
使用命令
1,先关闭并清空临时文件
./create-cluster stop
./create-cluster clean
redis-cli –cluster help
可以通过指令手动操作
2,创建配置文件,并启动
##Redis端口号过高。群集通信端口比Redis端口高10000个端口号。
##您的Redis端口号必须低于55535。
port 60006
cluster-enabled yes
cluster-config-file nodes-60006.conf
cluster-node-timeout 2000
appendonly yes
appendfilename appendonly-60006.aof
dbfilename dump-60006.rdb
logfile 60006.log
daemonize yes
../../src/redis-server ./6001.conf
redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1
3,数据倾斜时,如何移动?
redis-cli –cluster reshard 127.0.0.1:6001
根据指示,挪动槽位数据,把01的2000挪动到03中。
如何挪动指定槽位呢?
技术不要较真,不是实现不了,而是代价太大。
今天的文章RedisCluster搭建- (create-cluster,分布式部署)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30506.html