Redis Cluster 在5.0之后取消了ruby脚本 redis-trib.rb的支持(手动命令行添加集群的方式不变),集合到redis-cli里,避免了再安装ruby的相关环境。直接使用redis-clit的参数--cluster 来取代

一. 命令行

redis-cli --cluster help
Cluster Manager Commands:
create host1:port1 ... hostN:portN #创建集群
--cluster-replicas <arg> #从节点个数
check host:port #检查集群
--cluster-search-multiple-owners #检查是否有槽同时被分配给了多个节点
info host:port #查看集群状态
fix host:port #修复集群
--cluster-search-multiple-owners #修复槽的重复分配问题
reshard host:port #指定集群的任意一节点进行迁移slot,重新分slots
--cluster-from <arg> #需要从哪些源节点上迁移slot,可从多个源节点完成迁移,以逗号隔开,传递的是节点的node id,还可以直接传递--from all,这样源节点就是集群的所有节点,不传递该参数的话,则会在迁移过程中提示用户输入
--cluster-to <arg> #slot需要迁移的目的节点的node id,目的节点只能填写一个,不传递该参数的话,则会在迁移过程中提示用户输入
--cluster-slots <arg> #需要迁移的slot数量,不传递该参数的话,则会在迁移过程中提示用户输入。
--cluster-yes #指定迁移时的确认输入
--cluster-timeout <arg> #设置migrate命令的超时时间
--cluster-pipeline <arg> #定义cluster getkeysinslot命令一次取出的key数量,不传的话使用默认值为10
--cluster-replace #是否直接replace到目标节点
rebalance host:port #指定集群的任意一节点进行平衡集群节点slot数量
--cluster-weight <node1=w1...nodeN=wN> #指定集群节点的权重
--cluster-use-empty-masters #设置可以让没有分配slot的主节点参与,默认不允许
--cluster-timeout <arg> #设置migrate命令的超时时间
--cluster-simulate #模拟rebalance操作,不会真正执行迁移操作
--cluster-pipeline <arg> #定义cluster getkeysinslot命令一次取出的key数量,默认值为10
--cluster-threshold <arg> #迁移的slot阈值超过threshold,执行rebalance操作
--cluster-replace #是否直接replace到目标节点
add-node new_host:new_port existing_host:existing_port #添加节点,把新节点加入到指定的集群,默认添加主节点
--cluster-slave #新节点作为从节点,默认随机一个主节点
--cluster-master-id <arg> #给新节点指定主节点
del-node host:port node_id #删除给定的一个节点,成功后关闭该节点服务
call host:port command arg arg .. arg #在集群的所有节点执行相关命令
set-timeout host:port milliseconds #设置cluster-node-timeout
import host:port #将外部redis数据导入集群
--cluster-from <arg> #将指定实例的数据导入到集群
--cluster-copy #migrate时指定copy
--cluster-replace #migrate时指定replace
help For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.

二. 节点操作

1. 创建集群主节点
redis-cli --cluster create 192.168.163.132:6379 192.168.163.132:6380 192.168.163.132:6381 2. 创建集群主从节点
/redis-cli --cluster create 192.168.163.132:6379 192.168.163.132:6380 192.168.163.132:6381 192.168.163.132:6382 192.168.163.132:6383 192.168.163.132:6384 --cluster-replicas 1
--cluster-replicas为数字,1代表每个主节点需要一个从节点 这种方式不能手动的指定主节点, 所以需要的话,先执行创建主节点, 然后再添加从节点 3. 新增集群主节点
redis-cli --cluster add-node 192.168.163.132:6382 192.168.163.132:6379 为指定集群添加节点, 需要先链接到集群的任意一个节点IP(192.168.163.132:6379 ), 再将新节点添加, 要求前面放置新增的节点 4. 添加集群从节点
redis-cli --cluster add-node 192.168.163.132:6382 192.168.163.132:6379 --cluster-slave --cluster-master-id 117457eab5071954faab5e81c3170600d5192270 将6382节点添加到6379这个集群中, 并当做node_id为117457eab5071954faab5e81c3170600d5192270的从节点
如果不指定--cluster-master-id则会随机分配到任意一个主节点 5. 删除节点
redis-cli --cluster del-node 192.168.163.132:6384 f6a6957421b80409106cb36be3c7ba41f3b603ff 指定ip,端口和node_id来删除一个节点, 从节点可以直接删除, 主节点不能直接删除
删除之后, 该节点会被shutdown 当删除掉的节点重新起来之后不能自动的加入到集群中,, 但其和主的复制是正常的, 如果想要再次加入集群, 需要先在该节点执行cluster reset, 在使用add-node进行添加 6. 检查集群
redis-cli --cluster check 192.168.163.132:6384 --cluster-search-multiple-owners 任意链接一个集群节点, 进行集群状态检查 7.集群信心查看
redis-cli --cluster info 192.168.163.132:6384 8. 修复集群
redis-cli --cluster fix 192.168.163.132:6384 --cluster-search-multiple-owners
修复集群和槽的重复分配问题 9. 设置集群的超时时间
redis-cli --cluster set-timeout 192.168.163.132:6382 10000
连接集群中的任意节点来设置集群的超时时间参数: cluster-node-timeout 10. 集群中执行相关命令
redis-cli --cluster call 192.168.163.132:6381 config set requirepass cc
redis-cli -a cc --cluster call 192.168.163.132:6381 config set masterauth cc
redis-cli -a cc --cluster call 192.168.163.132:6381 config rewrite

三. 迁移相关

1. 在线迁移slot :在线把集群的一些slot从集群原来slot节点迁移到新的节点,即可以完成集群的在线横向扩容和缩容。有2种方式进行迁移
1) 根据提示进行操作
直接连接到集群的任意一节点
redis-cli -a cc --cluster reshard 192.168.163.132:6379 2) 根据参数进行操作
redis-cli -a cc --cluster reshard 192.168.163.132:6379 --cluster-from 117457eab5071954faab5e81c3170600d5192270 --cluster-to 815da8448f5d5a304df0353ca10d8f9b77016b28 --cluster-slots 10 --cluster-yes --cluster-timeout 5000 --cluster-pipeline 10 --cluster-replace
连接到集群的任意一节点来对指定节点指定数量的slot进行迁移到指定的节点。 2. 平衡slot
1)平衡集群中各个节点的slot数量
redis-cli -a cc --cluster rebalance 192.168.163.132:6379 2)根据集群中各个节点设置的权重等平衡slot数量(不执行,只模拟)
redis-cli -a cc --cluster rebalance --cluster-weight 117457eab5071954faab5e81c3170600d5192270=5 815da8448f5d5a304df0353ca10d8f9b77016b28=4 56005b9413cbf225783906307a2631109e753f8f=3 --cluster-simulate 192.168.163.132:6379
  
  3)新增加的节点,需要进行槽点平衡
redis-cli -a cc --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 172.16.59.92.7008

3. 导入集群
redis-cli --cluster import 192.168.163.132:6379 --cluster-from 192.168.163.132:9021 --cluster-replace
外部Redis实例(9021)导入到集群中的任意一节点

注意点:

  •   Redis cluster最低要求是3个主节点

Redis集群之常用操作的更多相关文章

  1. 使用DBeaver Enterprise连接redis集群的一些操作记录

    要点总结: 使用DBeaver Enterprise连接redis集群可以通过SQL语句查看key对应的value,但是没法查看key. 使用RedisDesktopManager连接redis集群可 ...

  2. spring+redis 集群下的操作

    文章就是记录一下工作当中的用到的点,与测试方法以备用,会不断更新. 配置文件spring-redis.xml: <?xml version="1.0" encoding=&q ...

  3. redis集群搭建手册

    搭建集群需要用到安装后的redis单机版的bin目录,所以我们先搭建redis单机版 Redis单机版搭建: 因为需要安装redis源码包,所以我们需要gcc环境支持 : 使用FTP工具将压缩包上传至 ...

  4. redis集群搭建+lua脚本的使用

    详细参考这篇文章(windows) https://blog.csdn.net/qiuyufeng/article/details/70474001 一.使用JAVA代码操作redis集群 publi ...

  5. 认识Redis集群——Redis Cluster

    前言 Redis集群分三种模式:主从模式.sentinel模式.Redis Cluster.之前没有好好的全面理解Redis集群,特别是Redis Cluster,以为这就是redis集群的英文表达啊 ...

  6. redis集群搭建及常用操作

    前言: Redis 是一个高性能的key-value数据库. redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用.它提供 ...

  7. redis集群之分片集群的原理和常用代理环境部署

    上篇文章刚刚介绍完redis的主从复制集群,但主从复制集群主要是为了解决redis集群的单点故障问题,通过整合哨兵能实现集群的高可用:但是却无法解决数据容量以及单节点的压力问题,所以本文继续介绍red ...

  8. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  9. java操作redis集群配置[可配置密码]和工具类(比较好用)

    转: java操作redis集群配置[可配置密码]和工具类 java操作redis集群配置[可配置密码]和工具类     <dependency>   <groupId>red ...

  10. Redis Cluster高可用集群在线迁移操作记录【转】

    之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑 ...

随机推荐

  1. 神经网络之卷积篇:详解卷积神经网络示例(Convolutional neural network example)

    详解卷积神经网络示例 假设,有一张大小为32×32×3的输入图片,这是一张RGB模式的图片,想做手写体数字识别.32×32×3的RGB图片中含有某个数字,比如7,想识别它是从0-9这10个数字中的哪一 ...

  2. Innodb 单表索引查询和连接查询效率分析

    一.MySQL查询访问方法 mysql执行查询语句的方式叫做访问方法或访问类型,这些访问类型具体为 const.ref.range.index.all等. 同一个查询语句可以使用多种不同的访问方法来执 ...

  3. Vue3——集成mock 模拟数据生成器

    安装依赖 npm install -D mockjs vite-plugin-mock@2.9.6 在 vite.config.js 文件中引入并配置 vite-plugin-mock 插件 impo ...

  4. vuex 的modules 子模块总结

  5. 洛谷P1596水坑计数

    [USACO10OCT] Lake Counting S 题目链接 题面翻译 由于近期的降雨,雨水汇集在农民约翰的田地不同的地方.我们用一个 \(N\times M(1\leq N\leq 100, ...

  6. 云原生周刊:Gateway API 1.0.0 发布 | 2023.11.6

    开源项目推荐 Kueue Kueue 是一套用于作业队列的 API 和控制器.它是作业级管理器,可决定何时允许作业启动(如创建 pod),何时停止作业(如删除活动 pod). Reloader 一个 ...

  7. 一起来看看大佬是怎样配置nginx虚拟主机

    在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器会同时配置N个虚拟主机,这样可以充分利用服务器的资源,方便管理员的统一管理 配置nginx虚拟主机首先肯定要先部署咱们的ngin ...

  8. Java 面向对象高级

    文章目录 1.静态 1.1 static修饰成员变量 1.2 static修饰成员变量的应用场景 1.3 static修饰成员方法 1.4 工具类 1.5 static的注意事项 1.6 static ...

  9. php如何快速入门

    PHP交流群  656679284  为PHP广大爱好者提供技术交流,有问必答,相互学习相互进步! 学习教程 学习前期,首要的WEB前端基础知识,比如html5/css3/java/jquery有个简 ...

  10. 浅析Mongodb注入

    前言 不太会Mongodb的用法,这里学习一下 简单介绍 Mongodb是非关系型数据库(NoSQL),在 MySQL 中,我们所熟知的几个最常见的概念是数据库 (Database).表 (Table ...