Day29 Redis架构实战-Redis-cli指令

Redis丛集指令使用Redis-cli

  • Redis 5.0开始将原本redis-trib整合到redis-cli中,可以直接操作使用.

  • 丛集一

    • 6310-->Reids Server (Master)
    • 6311-->Reids Server (Replica)
    • 6312-->Reids Server (Replica)
  • 丛集二

    • 6320-->Reids Server (Master)
    • 6321-->Reids Server (Replica)
    • 6322-->Reids Server (Replica)
  • 丛集三

    • 6330-->Reids Server (Master)
    • 6331-->Reids Server (Replica)
    • 6332-->Reids Server (Replica)

create

建立Redis Server丛集,至少要有3个Master节点,其余会依照给予的参数来配置Replica节点.

# 配置3个master节点
redis-cli --cluster create 127.0.0.1:6310 127.0.0.1:6320 127.0.0.1:6330 

# 配置3个master节点,其余6个配置为replica节点
# --cluster-replicas 2 代表每个master节点需要配置2个replica节点
redis-cli --cluster create 127.0.0.1:6310 127.0.0.1:6320 127.0.0.1:6330 127.0.0.1:6311 127.0.0.1:6312 127.0.0.1:6321 127.0.0.1:6322 127.0.0.1:6331 127.0.0.1:6332 --cluster-replicas 2 

https://ithelp.ithome.com.tw/upload/images/20211014/201116588AAlhs9iVK.png

check

检查Redis Server丛集配置是否OK.Slots是否有重覆分配给多个master节点.

redis-cli --cluster check 127.0.0.1:6310

# --cluster-search-multiple-owners 确认是否有同Slot被分配给多个master节点
redis-cli --cluster check 127.0.0.1:6310 --cluster-search-multiple-owners

https://ithelp.ithome.com.tw/upload/images/20211014/20111658QjLiUz09WQ.png
https://ithelp.ithome.com.tw/upload/images/20211014/20111658lI0NyCn875.png

info

查看Redis Server丛集状态Keys/Slots/Replica.

redis-cli --cluster info 127.0.0.1:6310

https://ithelp.ithome.com.tw/upload/images/20211014/201116580PHA28UNan.png

fix

修复Redis Server丛集.修复Slots重覆分配给多个master节点问题.

redis-cli --cluster fix 127.0.0.1:6310

# --cluster-search-multiple-owners 修复Slots重覆分配给多个master节点问题
# --cluster-fix-with-unreachable-masters 修复尚未被分配的
redis-cli --cluster fix 127.0.0.1:6310  --cluster-search-multiple-owners

https://ithelp.ithome.com.tw/upload/images/20211014/20111658zNwIHjwNx9.png
https://ithelp.ithome.com.tw/upload/images/20211014/20111658R7v57kBpXp.png

reshard

Redis Server丛集指定节点重新分配Slots,通常应用在扩充丛集後的重新分配的情境.

redis-cli --cluster reshard 127.0.0.1:6310

# --cluster-from 指定Redis Server丛集节点node id当作来源重新分配Slots,可以用逗号指定多个节点,预设是所有
# --cluster-to 指定Redis Server丛集节点node id来接收重新分配的Slots,只能指定一个,当没有输入时会提示输入
# --cluster-slots 需要重新分配的Slots数量,当没有输入时会提示输入
# --cluster-yes 直接确认是否要重新分配Slot
# --cluster-timeout 设定cluster migrate执行的逾时时间
# --cluster-pipeline 设定cluster getkeysinslot时一次取出的key数量,预设为10
# --cluster-replace 是否直接replace到目的节点
redis-cli --cluster reshard 127.0.0.1:6310 --cluster-from 1b9af54b8e0f609e0a066530b3f12a7852589fc3 --cluster-to 1307d911eb56f3079e2490dcab53b3131a0f8f81 --cluster-slots 10 --cluster-yes --cluster-timeout 5000 --cluster-pipeline 10 --cluster-replace

rebalance

将指定的Redis Server丛集重新平均分配Slots.

# --cluster-weight 设定集群各node的权重,待後续分配slot时参照 
# --cluster-use-empty-masters 设定是否让目前尚未分配到的节点参与,预设是不可以
# --cluster-timeout 设定cluster migrate执行的逾时时间
# --cluster-simulate 是否透过模拟进行rebalance
# --cluster-pipeline 设定cluster getkeysinslot时一次取出的key数量,预设为10
# --cluster-threshold 设定阀值来触发执行rebalance
# --cluster-replace 是否直接replace到目的节点

redis-cli --cluster rebalance --cluster-weight 1b9af54b8e0f609e0a066530b3f12a7852589fc3=1 7a0716a69a2e1af35eb353fadae030f6fc116864=2 1307d911eb56f3079e2490dcab53b3131a0f8f81=3 --cluster-simulate 127.0.0.1:6310

add-node

在Redis Server丛集加入新节点,预设此新增节点角色为Master节点.

# --cluster-slave 将新节点加入Master节点成为Replica
# --cluster-master-id Master节点node id
# add-node 新加入节点 任意已存在节点
redis-cli --cluster add-node 127.0.0.1:6379 127.0.0.1:6310 --cluster-slave --cluster-master-id 1b9af54b8e0f609e0a066530b3f12a7852589fc3

del-node

删除Redis Server丛集内指定的节点.
如果删除Master节点中还有配置Slots,需要先将Slots改分派到其他Master节点後才可以删除.

# 指定删除的node id
redis-cli --cluster del-node 127.0.0.1:6312 82013de2c546919a43c9b6597a2b6035bb1ac930

call

在Redis Server丛集中执行指定的命令.

# 预设同时对所有节点执行命令
# --cluster-only-masters 仅针对Master节点执行命令
# --cluster-only-replicas 仅针对Replica节点执行命令
redis-cli --cluster call 127.0.0.1:6310 config get cluster-node-timeout

set-timeout

设定cluster-node-timeout.(毫秒)

redis-cli --cluster set-timeout 10000

import

将外部Redis Server的资料汇入到Redis Server丛集中.

# --cluster-from 指定来源Redis Server
# --cluster-copy 使用copy的方式
# --cluster-replace 使用replace的方式

redis-cli --cluster import 127.0.0.1:6310 --cluster-from 127.0.0.1:6379 --cluster-replace

backup

备份Redis Server丛集到路径.

redis-cli --cluster backup 127.0.0.1:6310 /home/redis/data/

<<:  #29 No-code 之旅 — 部署至 Vercel

>>:  会议

从 React 开始,让你的网页material-ui起来 [Day 1] 受众&&环境

------------- 告诫 某天公司电脑以为发文完成就关机 ,结果中断铁人赛---------...

Day22 - 用 Ruby on Rails 处理台湾证券交易所资料-DB 设计

前言 有了前 2 篇从「台湾证券交易所」取得 CSV 档後,接着要把资料存入 DB,在存入前,需要先...

Day17 Grafana (gRPC, Go Processes, Redis)

昨天已经介绍过,透过 grafana 监控 matching 的品质 ,今天来介绍一下,透过 gra...

[自学笔记]关於SVN(Subversion) 版本控制系统

安妞大家 以下一样是自学笔记 什麽是SVN(Subversion) ? SVN(Subversion...

[火锅吃到饱-17] 新马辣经典麻辣锅-武昌店

俗语说的好:「鸟为财死,人为食亡」。(先附上新马辣的官网连结) (以上是我在Google Maps的...