当前位置: 首页 > news >正文

部署tendis 集群

1.概述

我们在部署 tendis 集群的时候,我们需要准备 6台机器,3主三从,当然 我们可以将他们部署同一台机器上,只要端口不一样就可以。
我们准备 6个文件夹
端口分别从 7001到 7006

构建过程

2.1.准备6个文件夹

tendis1
tendis2
tendis3
tendis4
tendis5
tendis6

文件夹下放

start.sh
stop.sh
tendisplus.conf

这些文件从 tendis 的 script copy 出来
需要修改
stop.sh

ip=127.0.0.1
port=7001
echo shutdown |../bin/redis-cli -h ${ip} -p ${port}

这个文件修改端口即可
tendisplus.conf ,这个文件也是

port 7001
daemon on
loglevel notice
logdir ./home/log
dumpdir ./home/dump
dir ./home/db
pidfile ./home/tendisplus.pid
slowlog ./home/log/slowlog
rocks.blockcachemb 4096
executorThreadNum 48
cluster-enabled yes

这个文件也是修改端口和是否开启集群

2.2.编写批处理一次性启动6个节点

  • 启动节点
#!/bin/bashecho "Starting all Tendis instances..."# 循环处理 tendis1 到 tendis6
for i in {1..6}; dodir="tendis${i}"if [[ -d "$dir" ]]; thenecho "----------------------------------------"echo "Processing $dir..."# 进入目录,执行脚本,然后返回 (pushd/popd 是另一种方式)( cd "$dir" && echo "In directory: $(pwd)" && ./start.sh )if [[ $? -eq 0 ]]; thenecho "Started $dir successfully."elseecho "Failed to start $dir."fielseecho "Directory $dir not found, skipping."fi
doneecho "----------------------------------------"
echo "All Tendis instance start commands issued."

这样我们可以一次性启动 6个节点

  • 停止节点
#!/bin/bash
echo "Stoping all Tendis instances..."
# 循环处理 tendis1 到 tendis6
for i in {1..6}; dodir="tendis${i}"if [[ -d "$dir" ]]; thenecho "----------------------------------------"echo "Processing $dir..."# 进入目录,执行脚本,然后返回 (pushd/popd 是另一种方式)( cd "$dir" && echo "In directory: $(pwd)" && ./stop.sh )if [[ $? -eq 0 ]]; thenecho "stop $dir successfully."elseecho "Failed to stop $dir."fielseecho "Directory $dir not found, skipping."fi
done
echo "----------------------------------------"
echo "All Tendis instance stop commands issued."

2.3 节点握手

当6个节点启动后,我们可以连到 节点1 和其他的节点握手
连接节点1

redis-cli -p 7001

分别执行

cluster meet 127.0.0.1 7002
cluster meet 127.0.0.1 7003
cluster meet 127.0.0.1 7004
cluster meet 127.0.0.1 7005
cluster meet 127.0.0.1 7006

2.4 分配slots

默认情况下,Tendis存储版跟Redis一样,将所有的数据映射到16384个slot中,每个key都会对应一个槽。只有把slot分配给了Tendis节点,Tendis节点才能响应与slot相关的命令,否则就会返回move错误。

分配slots可使用cluster addslots指令
我们分别将 1,3,5 节点分配 solt
分别登录 7001,7003,7005
连接后分别执行

cluster addslots {0..5461}
cluster addslots {5462..10922}
cluster addslots {10923..16383}

2.5 配置主从复制

我们将1,3,5 作为主节点,2,4,6 作为从 节点
我们先查看节点
登录节点1 执行命令

cluster nodes

看到节点

9474f3e26932126611bf00940ac06fbe9ceb1940 127.0.0.1:7003@17003 master - 0 1763797462000 0 connected 5462-10922
88419aaa88393e14da923f65795266c076cb71f7 127.0.0.1:7001@17001 myself,master - 0 1763797462000 2 connected 0-5461
3dba50eb72c1790fb0109795d92b24457b33e406 127.0.0.1:7005@17005 master - 0 1763797462634 4 connected 10923-16383
8200c98af4c657a681bbd1582a22fc06a86e6c07 127.0.0.1:7004@17004 slave 9474f3e26932126611bf00940ac06fbe9ceb1940 0 1763797461000 3 connected
3b5b89b032a8dc9c1c232da4ee03e1725c750e7a 127.0.0.1:7002@17002 slave 88419aaa88393e14da923f65795266c076cb71f7 0 1763797461579 2 connected
00aa76b24d4d43f48b81893438350914fc10fc1a 127.0.0.1:7006@17006 slave 3dba50eb72c1790fb0109795d92b24457b33e406 0 1763797463680 5 connected

这个是我配置好了的情况,如果没有配置主从的话 6个节点都是主节点。

我们分别登录 2,4,5 执行命令

cluster replicate 4233f87b9899774feb71bcef1cfeec964de0535b
cluster replicate 这里是主节点的ID

2.6 测试

我们可以登录其中的某个节点
执行 set 命令,可以看到他会将key 分布到不同的节点上。
我们连接 tendis 时 需要使用如下命令

./redis-cli -c -p 端口:~/tendis/tendisplus/bin$ ./redis-cli -c -p 7001
127.0.0.1:7001> get name
-> Redirected to slot [5798] located at 127.0.0.1:7003
"小李"

这样集群就配置完成了。

http://www.jsqmd.com/news/47648/

相关文章:

  • P4555 [国家集训队] 最长双回文串 踢姐
  • 2025年水肥一体机制造厂权威推荐榜单:便携式水肥一体机/全自动喷淋系统/简易水肥一体源头厂家精选
  • 23207225-华辉-第一次blog作业
  • 英语_阅读_AI models_待读
  • 11.22组会
  • 2025年食品厂生产用水紫外线消毒设备优质厂家权威推荐榜单:牛奶厂紫外线消毒设备/饮料杀菌紫外线消毒设备/啤酒生产紫外线消毒设备源头厂家精选
  • 2025年福建钨钢棒回收公司权威推荐榜单:福州钨钢合金回收/福建钨钢模具回收/福建钨钢块回收服务商精选
  • 扩展RTCM消息 - 教程
  • java.nio.charset.MalformedInputException: Input length = 1
  • 线段树问题-从熟练到精通
  • 完整教程:Flowable工作流引擎:核心表结构概述
  • 2025年粗糙轮廓仪厂家权威推荐榜单:轮廓仪/表面轮廓仪/粗糙度轮廓仪源头厂家精选
  • 使用java实验电梯调度算法
  • 2025年刮板蒸发器定做厂家权威推荐榜单:刮板薄膜蒸发器/薄膜蒸发器/刮板式蒸发器装备源头厂家精选
  • 单部电梯调度程序三次迭代设计与实践总结 - 23207231
  • 格路计数的一类(降维?)技巧
  • 百度PaddleOCR-VL:基于0.9B超紧凑视觉语言模型,支持109种语言,性能超越GPT-4o等大模型 - 详解
  • hadoop处理mysql数据的性能瓶颈
  • hadoop在linux的安装
  • hadoop与mysql的综合应用解决方案
  • hadoop与mysql的数据同步方法
  • 详细介绍:2. 容器常用操作
  • 2025年上海黑臭水体修复服务权威推荐榜单:黑臭水体治理方案/河道水净化公司/河道治理服务商精选
  • 2025年KBK刚性组合式起重机供应商权威推荐榜单:KBK起重机/KBK柔性组合式起重机/KBK刚性吊源头厂家精选
  • 珠海爱尔眼科医院联系方式:常见眼病防治建议
  • 一条SQL的完整执行过程:小明查询员工信息的完整冒险故事
  • LangGraph 官方教程:聊天机器人之三 - 实践
  • 2025年不锈钢管锯片供货厂家权威推荐榜单:切H型钢/角钢切割/切碳素钢锯片源头厂家精选
  • 2025年一体式泵站生产厂家权威推荐榜单:污水一体化泵站/预制泵站/雨水泵站源头厂家精选
  • gzip linux