redis 笔记
所谓 redis 集群,就是有的挂了可以继续用别的。下面是搭建集群环境的步骤
(1)准备多个 redis 环境
- 新建文件夹
redis-cluster
- 将 redis 安装目录拷贝多份,放到二级目录,并分别以
XXXX
端口号命名 - 编辑
redis.windows.conf
- 依次修改
port
属性,打开三个集群有关配置的注释 [1] - 执行并注册为服务 [2]
- 其它操作如上
- [1] redis.windows.conf
port 6379
################################ REDIS CLUSTER ###############################
cluster-enabled yes
# 该节点的配置信息,服务启动后会在同目录下生成nodes-端口号.conf文件
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
- [2] cmd 安装服务
redis-server.exe --service-install redis.windows.conf --service-name redis6379
操作后,打开服务,会看到对应 redis6739
出现在列表
(2)开始搭建集群
方案比对:搭建教程分为 2 种,使用 redis-trib.rb
脚本搭建教程和 redis 官方教程。网上多数教程是前者,博客参差不齐,下面是经过实验后得到的关于该方式的一些弊端。后者来自 redis 官方,简洁到位。
经过搜索,后面在一篇 stackflow redis on windows cluster setup - Stack Overflow 的回答下,找到后者 redis 官方搭建教程的入口。
planA:使用 redis-trib.rb
安装的弊端:
redis-trib.rb
是集群搭建的一个脚本文件,作者是 ruby 的爱好者,运行时需 ruby 环境支持
- 步骤较多
- 须另外安装
ruby
环境 redis-trib.rb
的来源参差不齐,在网上找到的要不是 github 来源上次维护已经是 5 yeas ago,要不是百度云链接- not work for me,这是我根据其中 2 篇博客安装后的结果,
redis-trib.rb
来自其中一篇给的链接 GitHub - beebol/redis-trib.rb: redis-trib.rb
执行命令:
redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003
结果:
planB:使用 redis-cli.exe
安装
官方文档入口:Scaling with Redis Cluster | Redis - 目录在 Initializing the cluster
温馨提示:
- 该命令程序在 redis 根目录下,无需另外安装其它东西
- 数量要求:至少要 6 个 redis [1]
- 优先启动要求:保证 redis 服务都已正常开启 [2]
- 主从参数的位置:使用
redis-cli
初始化不一样的命令在于:参数不是--replicas 1
而是--cluster-replicas 1
;位置也不一样,放在最后面而不是中间
- [1] 数量要求:复制的 redis 目录加一起至少要 6 个,否则会出现下面的情况
- [2] 服务优先启动:因为初始化集群需要服务已启动,所以先保证 redis 全部启动,否则会出现下面的情况
步骤
来到任意其中一个 redis 目录下,打开 cmd,执行官方给的命令
redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 --cluster-replicas 1
安装成功后
[OK] All 16384 slots covered
检查搭建结果
打开 redis 客户端的命令行,依次输入下图的命令,搭建成功
参考资料
- 旧方案:本地搭建 Redis 集群 windows(图文详解)_张卡卡 mg 的博客 - CSDN 博客_本地搭建 redis 集群 (缺少
redis-trib.rb
来源) - 官方方案:Scaling with Redis Cluster | Redis