前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Redis的slot迁移工具

Redis的slot迁移工具

作者头像
一见
发布于 2020-08-13 03:19:57
发布于 2020-08-13 03:19:57
1.4K00
代码可运行
举报
文章被收录于专栏:蓝天蓝天
运行总次数:0
代码可运行

工具下载: https://github.com/eyjian/redis-tools/blob/master/move_redis_slot.sh 支持迁移已有的keys。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh
# Writed by yijian on 2020/8/10
# 迁移 slot 工具,但一次只能迁移一个 slot
#
# 使用时,需要指定如下几个参数:
# 1)参数1:必选参数,用于指定被迁移的 slot
# 2)参数2:必选参数,用于指定源节点(格式为:ip:port)
# 3)参数3:必选参数,用于指定目标节点(格式为:ip:port)
# 6)参数4:可选参数,用于指定访问 redis 的密码
#
# 使用示例(将202010.9.12.8:1383迁移到10.9.12.9:1386):
# move_redis_slot.sh 2020 10.9.12.8:1383 10.9.12.9:1386
#
# 执行本脚本时,有两个“确认”,
# 第一个“确认”是提示参数是否正确,
# 第二个“确认”是提示是否迁移已有的keys,
# 如果输入非yes则只迁移slot,不迁移已有keys。
# 确保redis-cli可用
REDIS_CLI=${REDIS_CLI:-redis-cli}
which "$REDIS_CLI" > /dev/null 2>&1
if test $? -ne 0; then
echo "\`redis-cli\` not exists or not executable"
exit 1
fi
# 参数检查
if test $# -ne 3 -a $# -ne 4; then
echo -e "Usage: `basename $0` \033[1;33mslot\033[m source_node destition_node redis_password"
echo -e "Example1: `basename $0` \033[1;33m2020\033[m 127.0.0.1:6379 127.0.0.1:6380"
echo -e "Example2: `basename $0` \033[1;33m2020\033[m 127.0.0.1:6379 127.0.0.1:6380 password123456"
exit 1
fi
SLOT=$1
SRC_NODE="$2"
DEST_NODE="$3"
REDIS_PASSOWRD="$4"
# 得到指定节点的 nodeid
function get_node_id()
{
node="$1"
node_ip="`echo $node|cut -d':' -f1`"
node_port=`echo $node|cut -d':' -f2`
# 得到对应的 nodeid
$REDIS_CLI --raw --no-auth-warning -a "$REDIS_PASSOWRD" \
-h $node_ip -p $node_port \
CLUSTER NODES | awk -v node=$node '{if ($2==node) printf("%s",$1);}'
}
SRC_NODE_ID="`get_node_id $SRC_NODE`"
SRC_NODE_IP="`echo $SRC_NODE|cut -d':' -f1`"
SRC_NODE_PORT=`echo $SRC_NODE|cut -d':' -f2`
DEST_NODE_ID="`get_node_id $DEST_NODE`"
DEST_NODE_IP="`echo $DEST_NODE|cut -d':' -f1`"
DEST_NODE_PORT=`echo $DEST_NODE|cut -d':' -f2`
echo -e "\033[1;33mSource\033[m node: $SRC_NODE_IP:$SRC_NODE_PORT"
echo -e "\033[1;33mDestition\033[m node: $DEST_NODE_IP:$DEST_NODE_PORT"
echo -en "Confirm to continue? [\033[1;33myes\033[m/\033[1;33mno\033[m]"
read -r -p " " input
if test "$input" != "yes"; then
exit 1
fi
echo "........."
# 目标节点上执行 IMPORTING 操作
# 如果 $SLOT 已在目标节点,则执行时报错“ERR I'm already the owner of hash slot 1987”
echo -e "\033[1;33mImporting\033[m $SLOT from $SRC_NODE to $DEST_NODE ..."
err=`$REDIS_CLI --raw --no-auth-warning -a "$REDIS_PASSOWRD" \
-h $DEST_NODE_IP -p $DEST_NODE_PORT \
CLUSTER SETSLOT $SLOT IMPORTING $SRC_NODE_ID`
if test "X$err" != "XOK"; then
echo "[destition://$DEST_NODE_IP:$DEST_NODE_PORT] $err"
exit 1
fi
# 源节点上执行 MIGRATING 操作
# 如果 $SLOT 并不在源节点上,则执行时报错“ERR I'm not the owner of hash slot 1987”
echo -e "\033[1;33mMigrating\033[m $SLOT from $SRC_NODE to $DEST_NODE ..."
err=`$REDIS_CLI --raw --no-auth-warning -a "$REDIS_PASSOWRD" \
-h $SRC_NODE_IP -p $SRC_NODE_PORT \
CLUSTER SETSLOT $SLOT MIGRATING $DEST_NODE_ID`
if test "X$err" != "XOK"; then
echo "[source://$SRC_NODE_IP:$SRC_NODE_PORT] $err"
exit 1
fi
# 是否迁移已有的keys?
echo -en "Migrate keys in slot://$SLOT? [\033[1;33myes\033[m/\033[1;33mno\033[m]"
read -r -p " " input
if test "$input" = "yes"; then
first=1 # 是否第一轮keys迁移操作
batch=100 # 一次批量迁移的keys数
timeout_ms=60000 # 超时时长(单位:毫秒)
destination_db=0 # 对于redis集群,取值总是为0
num_keys=0
echo "........."
echo -e "Migrating keys in slot://$SLOT ..."
while true
do
# 在源节点上执行:
# 借助命令“CLUSTER GETKEYSINSLOT”和命令“MIGRATE”迁移已有的keys
keys="`$REDIS_CLI --raw --no-auth-warning -a '$REDIS_PASSOWRD' \
-h $SRC_NODE_IP -p $SRC_NODE_PORT \
CLUSTER GETKEYSINSLOT $SLOT $batch | tr '\n' ' ' | xargs`"
if test -z "$keys"; then
if test $first -eq 1; then
echo -e "No any keys to migrate in slot://$SLOT"
else
echo -e "Finished migrating all keys ($num_keys) in slot://$SLOT"
fi
break
fi
first=0
n=`echo "$keys" | tr -cd ' ' | wc -c`
num_keys=$(($num_keys + $n))
# 在源节点上执行命令“MIGRATE”迁移到目标节点
# MIGRATE returns OK on success,
# or NOKEY if no keys were found in the source instance
if test -z "$REDIS_PASSOWRD"; then
err=`$REDIS_CLI --raw \
-h $SRC_NODE_IP -p $SRC_NODE_PORT \
MIGRATE $DEST_NODE_IP $DEST_NODE_PORT "" $destination_db $timeout_ms \
REPLACE KEYS $keys`
else
err=`$REDIS_CLI --raw --no-auth-warning -a "$REDIS_PASSOWRD" \
-h $SRC_NODE_IP -p $SRC_NODE_PORT \
MIGRATE $DEST_NODE_IP $DEST_NODE_PORT "" $destination_db $timeout_ms \
REPLACE AUTH "$REDIS_PASSOWRD" KEYS $keys`
fi
if test "X$err" = "XNOKEY"; then
break
fi
done
fi
# 取得所有 master 节点
nodes=(`$REDIS_CLI --raw --no-auth-warning -a "$REDIS_PASSOWRD" -h $DEST_NODE_IP -p $DEST_NODE_PORT \
CLUSTER NODES | awk '{if (match($3,"master")) printf("%s\n",$2);}'`)
# 在所有 master 节点上执行 NODE 操作
# 实际上,只可对源节点和目标节点执行 NODE 操作,
# 新的配置会自动在集群中传播。
echo "........."
for node in ${nodes[*]}; do
node_ip="`echo $node|cut -d':' -f1`"
node_port=`echo $node|cut -d':' -f2`
echo -en "NODE: $node_ip:$node_port "
err=`$REDIS_CLI --raw --no-auth-warning -a "$REDIS_PASSOWRD" \
-h $node_ip -p $node_port \
CLUSTER SETSLOT $SLOT NODE $DEST_NODE_ID`
echo -e "\033[1;33m$err\033[m"
done
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
论文解读 - 统一的多模态理解和生成模型综述(上)
近年来,多模态理解模型和图像生成模型都取得了显著的进步。尽管各自取得了成功,这两个领域却独立发展,形成了独特的架构范式:基于自回归的架构主导了多模态理解,而基于扩散的模型则成为图像生成的基石。最近,人们越来越关注开发能够整合这些任务的统一框架。GPT-4的新能力正是这一趋势的体现,突显了统一的可 能性。然而,两个领域的架构差异带来了重大挑战。为了清晰地概述当前的统一努力,论文提供了一份全面的综述,旨在指导未来的研 究。首先,论文介绍多模态理解和文本到图像生成模型的基础概念和最新进展。接下来,论文回顾现有的统一模型,将其分为三大架构 范式:基于扩散、基于自回归以及融合自回归和扩散机制的混合方法。对于每一类,论文分析了相关工作引入的结构设计和创新。此 外,论文还编制了针对统一模型的数据集和基准测试,为未来的探索提供资源。最后,论文讨论了这一新兴领域面临的关键挑战,包括 令牌策略、跨模态注意力和数据问题。由于该领域仍处于早期阶段,论文预计会迅速取得进展,并将定期更新此综述。论文的目标是激 发进一步的研究,并为社区提供有价值的参考。
合合技术团队
2025/05/29
1100
论文解读 - 统一的多模态理解和生成模型综述(上)
AI绘画新思路:国产开源50亿参数新模型,合成可控性、质量实现飞跃
机器之心报道 机器之心编辑部 在 AI 绘画领域,很多研究者都在致力于提升 AI 绘画模型的可控性,即让模型生成的图像更加符合人类要求。前段时间,一个名为 ControlNet 的模型将这种可控性推上了新的高峰。大约在同一时间,来自阿里巴巴和蚂蚁集团的研究者也在同一领域做出了成果,本文是这一成果的详细介绍。 论文地址:https://arxiv.org/pdf/2302.09778v2.pdf 项目地址:https://github.com/damo-vilab/composer 近年来,在大数据上学习
机器之心
2023/03/29
4220
AI绘画新思路:国产开源50亿参数新模型,合成可控性、质量实现飞跃
文字生成图片综述 - plus studio
根据文字生成图像,是近几年大模型领域和多模态比较热门的研究。以NovelAI,waifu等为代表的二次元模型极大地拓展了 stable diffusion [5][24]模型和生态的想象空间。例如原本做AIGC生成小说的NovelAI推出了自己的二次元图像生成模型,基于 SD 算法框架和 Danbooru 二次元图库数据集进行训练和优化。像 NovelAI 这类的二次元模型对于用户输入的描述词的专业程度要求较高,也由社区自发整理了大量的魔典(prompt).精确控制图像的生成也是AI绘画的一个发展方向,各种可以控制人物动作,位置的方法[10][13][19]被提出.最近openai也开源了他们最新的研究Consistency Models[20] ,可以1s内生成多张图片。此外,stable diffusion也被用在了3d模型的生成方面,例如 dreamfusion[25],Point-E[26] 等。
plus sign
2024/02/28
6930
文字生成图片综述 - plus studio
多模态新王登基!OpenAI发布DALL·E 2,生成图像「指哪打哪」
---- 新智元报道   编辑:LRS 【新智元导读】大艺术家重磅升级!最近OpenAI发布升级版DALL·E 2,不仅分辨率提升了4倍,准确率更高,业务也更广了:除了生成图像,还能二次创作! 2021年1月,OpenAI放了一个大招:DALL-E模型,让自然语言和图像成功牵手,输入一段不管多离谱的文本,都能生成图片! 比如经典的「牛油果形状的扶手椅」,还有新奇生物「一个长颈鹿乌龟」。 当时看着已经够神奇了吧? 时隔一年,OpenAI结合另一个多模态模型CLIP,发布了第二个版本DALL·E 2!
新智元
2022/04/11
5110
多模态新王登基!OpenAI发布DALL·E 2,生成图像「指哪打哪」
缩小规模,OpenAI文本生成图像新模型GLIDE用35亿参数媲美DALL-E
从年初 OpenAI 刷屏社区的 DALL-E 到英伟达生成逼真摄影的 GauGAN2,文本生成图像可谓是今年大火的一个研究方向。现在 OpenAI 又有了新的进展——35 亿参数的新模型 GLIDE。
机器之心
2021/12/27
8710
缩小规模,OpenAI文本生成图像新模型GLIDE用35亿参数媲美DALL-E
DALL·E-2是如何工作的以及部署自己的DALL·E模型
DALL·E-2可以通过自然语言的描述创建现实的图像。Openai发布了dall·e-2的Beta版。在本文中,我们将仔细研究DALL·E-2的原始研究论文,并了解其确切的工作方式。由于并没有开放源代码, Boris Dayma等人根据论文创建了一个迷你但是开源的模型Dall·E Mini(命名为Craiyon),并且在craiyon.com上提供了一个DEMO。
deephub
2022/11/11
3.2K0
DALL·E-2是如何工作的以及部署自己的DALL·E模型
AI绘画Imagen大力出奇迹生成图像
Imagen通过创新的设计,摈弃了需要预训练视觉-语言模型的繁琐步骤,直接采用了T5等大规模语言模型作为文本编码器,与扩散模型有机结合,完成了从文本到图像的直接关联映射。
Dlimeng
2023/12/27
4290
AI绘画Imagen大力出奇迹生成图像
DALL-E 2的工作原理原来是这样!
CLIP+修改版GLIDE双管齐下。 作者 | Ryan O'Connor 编译丨王玥 编辑 | 陈彩娴 OpenAI的模型DALL-E 2于本月初发布,刚一亮相,便在图像生成和图像处理领域卷起了新的风暴。 只需要给到寥寥几句文本提示,DALL-E 2就可以按文本指示生成全新图像,甚至能将毫不相关的物体以看似合理的语义方式组合在一起。 比如用户输入提示“一碗汤是另一个次元的入口”后,DALL-E 2便生成了以下的魔幻图片。 “一碗汤是另一个次元的入口” 图源:https://openai.com/dal
AI科技评论
2022/04/21
1.3K0
DALL-E 2的工作原理原来是这样!
简洁、生动,图解「老画师」DALL-E 2的工作原理
选自assemblyai 作者:Ryan O'Connor 机器之心编译 编辑:蛋酱 效果惊艳的 DALL-E 2,到底是怎么工作的? 2022 年 4 月初,OpenAI 的开创性模型 DALL-E 2 登场,为图像生成和处理领域树立了新的标杆。只需输入简短的文字 prompt,DALL-E 2 就可以生成全新的图像,这些图像以语义上十分合理的方式将不同且不相关的对象组合起来,就像通过输入 prompt「a bowl of soup that is a portal to another dimensi
机器之心
2022/04/24
1.4K0
简洁、生动,图解「老画师」DALL-E 2的工作原理
万字长文 | Sora技术解析报告
在深度学习革命之前,传统的图像生成技术依赖于基于手工创建特征的纹理合成和纹理映射等方法。这些方法在生成复杂而生动的图像方面能力有限。
NewBeeNLP
2024/03/07
1.6K0
万字长文 | Sora技术解析报告
多模态自然语言处理最新进展
近三年来,基于 Transformer 和自监督预训练的语言模型取得了非常瞩目的成绩。这些模型通过自回归、降噪自编码器、对比学习等自监督学习任务,能够从海量的单语或者多语语料中学习到语言的通用表示,然后通过微调等方式适配到各种各样的下游任务上去,例如问答、文本生成、机器翻译等。
澜舟科技
2022/08/18
7270
多模态自然语言处理最新进展
万字深度好文!视觉-语言(VL)智能:任务、表征学习和大型模型
编译丨Jocelyn 编辑丨陈彩娴 本文对视觉-语言(VL)智能按时间顺序进行了全面调研,并将这一领域的发展总结为三个阶段: 第一个阶段是2014-2018年,其间,专门的模型被设计用于不同的任务。第二个时代是2019-2021年,在此期间,通过使用有着高质量标签的VL数据集进行预训练,神经网络模型能够学习视觉和语言的联合表征。最后,随着2021年CLIP的出现,第三个时代开始了,此时研究人员寻求在更大的弱标签数据集上预训练VL模型,并通过VL预训练获得性能强大的基于零样本或少样本的视觉模型。 我们相信这
AI科技评论
2022/03/31
6750
万字深度好文!视觉-语言(VL)智能:任务、表征学习和大型模型
Stable Diffusion v1v2 解读
是图像编码器和文本编码器的组合,其训练过程可以简化为拍摄图像和文字说明,使用两个编码器对数据分别进行编码,然后使用余弦距离比较结果嵌入,刚开始训练时,即使文本描述与图像是相匹配的,它们之间的相似性肯定也是很低的。随着模型的不断更新,在后续阶段,编码器对图像和文本编码得到的嵌入会逐渐相似。通过在整个数据集中重复该过程,并使用大 batch size 的编码器,最终能够生成一个嵌入向量,其中狗的图像和句子「一条狗的图片」之间是相似的。就像在 word2vec 中一样,训练过程也需要包括不匹配的图片和说明的负样本,模型需要给它们分配较低的相似度分数。
iResearch666
2023/09/13
1.7K0
Stable Diffusion v1v2 解读
Transformer再胜Diffusion!谷歌发布新一代文本-图像生成模型Muse:生成效率提升十倍
---- 新智元报道   编辑:LRS 【新智元导读】谷歌带着更强大的图像生成模型来了,依然Transformer! 最近谷歌又发布了全新的文本-图像生成Muse模型,没有采用当下大火的扩散(diffusion)模型,而是采用了经典的Transformer模型就实现了最先进的图像生成性能,相比扩散或自回归(autoregressive)模型,Muse模型的效率也提升非常多。 论文链接:https://arxiv.org/pdf/2301.00704.pdf 项目链接:https://muse-mod
新智元
2023/02/24
8670
Transformer再胜Diffusion!谷歌发布新一代文本-图像生成模型Muse:生成效率提升十倍
卧剿,6万字!30个方向130篇!CVPR 2023 最全 AIGC 论文!一口气读完。
最近,扩散模型在图像生成方面取得了巨大的成功。然而,当涉及到布局生成时,由于图像通常包含多个物体的复杂场景,如何对全局布局图和每个详细对象进行强大的控制仍然是一个具有挑战性的任务。
公众号机器学习与AI生成创作
2023/08/22
4.4K1
卧剿,6万字!30个方向130篇!CVPR 2023 最全 AIGC 论文!一口气读完。
推理速度比Stable Diffusion快2倍,生成、修复图像谷歌一个模型搞定,实现新SOTA
机器之心报道 机器之心编辑部 图像生成领域越来越卷了! 文本到图像生成是 2022 年最火的 AIGC 方向之一,被《science》评选为 2022 年度十大科学突破。最近,谷歌的一篇文本到图像生成新论文《Muse: Text-To-Image Generation via Masked Generative Transformers》又引起高度关注。 论文地址:https://arxiv.org/pdf/2301.00704v1.pdf 项目地址:https://muse-model.github.i
机器之心
2023/03/29
3990
推理速度比Stable Diffusion快2倍,生成、修复图像谷歌一个模型搞定,实现新SOTA
文本生成图像工作简述4--扩散模型、自回归模型、生成对抗网络的对比调研
基于近年来图像处理和语言理解方面的技术突破,融合图像和文本处理的多模态任务获得了广泛的关注并取得了显著成功。
中杯可乐多加冰
2024/04/21
1.6K0
文本生成图像工作简述1--概念介绍和技术梳理
基于深度学习的机器学习方法已经在语音、文本、图像等单一模态领域取得了巨大的成功,而同时涉及到多种输入模态的多模态机器学习研究有巨大的应用前景和广泛的研究价值,成为了近年来的研究热点。
中杯可乐多加冰
2024/04/18
6890
叫板DALL·E 2,预训练大模型做编码器,谷歌把文字转图像模型卷上天
点击上方↑↑↑“OpenCV学堂”关注我来源:公众号 机器之心  授权 OpenAI:DALL・E 2 就是最好的。谷歌:看下我们 Imagen 生成的柴犬? 多模态学习近来受到重视,特别是文本 - 图像合成和图像 - 文本对比学习两个方向。一些模型因在创意图像生成、编辑方面的应用引起了公众的广泛关注,例如 OpenAI 的文本转图像模型 DALL・E、英伟达的 GauGAN。现在,来自谷歌的研究者也在这一方向做出了探索,提出了一种文本到图像的扩散模型 Imagen。 Imagen 结合了 Transfor
OpenCV学堂
2022/05/25
6340
叫板DALL·E 2,预训练大模型做编码器,谷歌把文字转图像模型卷上天
Jay Alammar再发新作:超高质量图解Stable Diffusion,看完彻底搞懂「图像生成」原理
---- 新智元报道   编辑:LRS 【新智元导读】小白都能看懂的Stable Diffusion原理! 还记得火爆全网的图解Transformer吗? 最近这位大佬博主Jay Alammar在博客上对大火的Stable Diffusion模型也撰写了一篇图解,让你从零开始彻底搞懂图像生成模型的原理,还配有超详细的视频讲解! 文章链接:https://jalammar.github.io/illustrated-stable-diffusion/ 视频链接:https://www.youtube.
新智元
2023/02/24
1.2K0
Jay Alammar再发新作:超高质量图解Stable Diffusion,看完彻底搞懂「图像生成」原理
推荐阅读
相关推荐
论文解读 - 统一的多模态理解和生成模型综述(上)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档