redis集群搭建
redis集群搭建
redis安装步骤 tar xf redis-5.0.8.tar.gz -C /usr/local/ cd /usr/local/ cd redis-5.0.8/ make make test yum -y install tcl make test make install mkdir /redis_cluster cd /redis_cluster/ ll mkdir redis{7000..7007} ll cp /usr/local/redis-5.0.8/redis.conf ./redis7000/ vim ./redis7000/redis.conf
redis.conf
port 7000 //端口7000,7002,7003 bind 本机ip //改为其他节点机器可访问的ip 可以使用ifconfig查看一下 daemonize yes //redis后台运行 appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志 pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002 cluster-enabled yes //开启集群 cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002 cluster-node-timeout 15000 //请求超时 默认15秒,可自行修改
##分别配置各节点所需配置文件 sed 's/7000/7001/g' redis.conf >/redis_cluster/redis7001/redis.conf sed 's/7000/7002/g' redis.conf >/redis_cluster/redis7002/redis.conf sed 's/7000/7003/g' redis.conf >/redis_cluster/redis7003/redis.conf sed 's/7000/7004/g' redis.conf >/redis_cluster/redis7004/redis.conf sed 's/7000/7005/g' redis.conf >/redis_cluster/redis7005/redis.conf sed 's/7000/7006/g' /redis_cluster/redis7000/redis.conf >/redis_cluster/redis7006/redis.conf sed 's/7000/7006/g' /redis_cluster/redis7000/redis.conf >/redis_cluster/redis7007/redis.conf
##分别启动redis服务 [root@redis ~]#redis-server /redis_cluster/redis7000/redis.conf [root@redis ~]#redis-server /redis_cluster/redis7001/redis.conf [root@redis ~]#redis-server /redis_cluster/redis7002/redis.conf [root@redis ~]#redis-server /redis_cluster/redis7003/redis.conf [root@redis ~]#redis-server /redis_cluster/redis7004/redis.conf [root@redis ~]#redis-server /redis_cluster/redis7005/redis.conf
[root@redis ~]#/usr/local/bin/redis-cli --cluster create 192.168.53.6:7000 192.168.53.6:7001 192.168.53.6:7002 192.168.53.6:7003 192.168.53.6:7004 192.168.53.6:7005 --cluster-replicas 1 //后面指定数字1 就是一主带一从,如果是2 就是一主两从
##从节点不分配槽位
##增加节点 redis-cli --cluster --help //查看集群命令用法选项 首先启动几点服务器 [root@redis ~]# redis-server /redis_cluster/redis7006/redis.conf [root@redis ~]# redis-server /redis_cluster/redis7007/redis.conf [root@redis ~]# redis-cli --cluster add-node 192.168.53.6:7006 192.168.53.6:7003 //后面加的节点可以是随便集群里的节点,集群中的节点已相互认识,所以这个目的主要是meet的过程
新增进来默认主节点,,,可以使用选项指定增加从节点
##增加从节点,并指定为谁的从节点 [root@redis ~]# redis-cli --cluster add-node 192.168.53.6:7007 192.168.53.6:7003 --cluster-slave --cluster-master-id d6e5fb707569777faee6453f42d99e541b62a2ac
### -c 选项代表以集群方式登录
迁移槽和数据
-
槽迁移计划
- 语法:redis-cli --cluster reshard 已存在节点IP:端口
- redis-cli --cluster reshard 192.168.53.6:7002
-
迁移数据
-
执行流程:提示分配多少槽–》接收节点ID–》all/done
[root@lb redis_cluster]# redis-cli --cluster reshard 192.168.53.6:7002 >>> Performing Cluster Check (using node 192.168.53.6:7002) M: 7714e982654f9150f27e2e166dab532e61854aab 192.168.53.6:7002 slots:[11089-16383] (5295 slots) master 1 additional replica(s) S: 3dd9e0a6d413eb0582d4b039e7b2ec25a174add9 192.168.53.6:7007 slots: (0 slots) slave replicates d6e5fb707569777faee6453f42d99e541b62a2ac S: 69066cbbef97b47c4ac597d971f8919e591049ab 192.168.53.6:7005 slots: (0 slots) slave replicates 7714e982654f9150f27e2e166dab532e61854aab S: e5d1f88def599163e4e598a654c3de7a6568baef 192.168.53.6:7003 slots: (0 slots) slave replicates 25b211495aef9f5b8b4dd5320695417367b652e8 M: 5db4ceb0497b1eb11d94fd20fff0a530126b1021 192.168.53.6:7001 slots:[5628-10922] (5295 slots) master 1 additional replica(s) S: 26d3d64fe954633ebb81db01dc7865e32b5acb65 192.168.53.6:7004 slots: (0 slots) slave replicates 5db4ceb0497b1eb11d94fd20fff0a530126b1021 M: d6e5fb707569777faee6453f42d99e541b62a2ac 192.168.53.6:7006 slots:[0-165],[5461-5627],[10923-11088] (499 slots) master 1 additional replica(s) M: 25b211495aef9f5b8b4dd5320695417367b652e8 192.168.53.6:7000 slots:[166-5460] (5295 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. How many slots do you want to move (from 1 to 16384)? 500 What is the receiving node ID? d6e5fb707569777faee6453f42d99e541b62a2ac //分配得节点ID Please enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs. Source node #1: all //all是所有节点平均分配,也可输入指定节点分配 ...
-
-
缩容集群
-
下线迁移槽
-
语法:redis-cli --cluster reshard --cluster-from 要迁出节点ID --cluster-to 接收槽节点ID --cluster-slots 迁出得数量 已存在节点ip 端口
-
redis-cli --cluster reshard --cluster-from d6e5fb707569777faee6453f42d99e541b62a2ac --cluster-to 25b211495aef9f5b8b4dd5320695417367b652e8 --cluster-slots 500 192.168.53.6 7000
-
-
-
忘记节点关闭节点
- 语法:redis-cli --cluster del-node 已存在节点ip:端口 要删除的节点ID
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗