Windows、MacOS下Redis集群配置
Windows下Redis集群搭建
准备
安装redis客户端
集群规划有五个节点的集群,每个节点有一主一备。需要10台虚拟机。
把 redis 解压后,再复制出 10 份,配置五主五从集群。
修改配置文件【redis.windows.conf】
- 端口
- redis 默认端口号6379留给单节点redis,设置端口为7000,7001,7002,7003,7004,7005,700,7007,7008,7009。并且把目录使用端口号命名
- 其他配置
cluster-enabled
调整为yes, 否则在使用JedisCluster集群代码获取的时候,会报错。取消注释cluster-node-timeout
调整为 15000,那么在创建集群的时候,不会超时。取消注释cluster-config-file nodes-6379.conf
是为该节点的配置信息,这里使用 nodes-端口.conf命名方法。服务启动后会在目录生成该文件。取消注释,修改文件名
- 端口
编写redis启动器
命令窗口启动
修改
start.bat
文件中title【cmd窗口标题】,内容如下title redis-7000 redis-server.exe redis.windows.conf
新增集群启动器
redis-cluster.bat
,内容示例cd 7000 &start start.bat cd ../7001 &start start.bat cd ../7002 &start start.bat cd ../7003 &start start.bat cd ../7004 &start start.bat cd ../7005 &start start.bat cd ../7006 &start start.bat cd ../7007 &start start.bat cd ../7008 &start start.bat cd ../7009 &start start.bat
配置redis为windows服务
cmd进入redis-7000目录,执行命令
redis-server --service-install redis.windows.conf --service-name Redis7000 --loglevel verbose
其他几个也同样操作
安装集群
安装RUBY
- 双击运行
- 勾选后两个选项
- 双击运行
安装redis的ruby驱动
使用rubygems是为了安装ruby的redis依赖- 解压
- 在解压目录运行 ruby setup.rb 安装gem
- gem安装redis
- 解压
安装集群脚本
- 将
放到一个redis目录
- 将
配置集群
把每个节点下的 start.bat双击启动,记得检查目录下是否有appendonly.aof,nodes.*.conf和.rdb文件(持久化存储数据),删除他们
切换到redis目录在命令行中执行
redis-trib.rb create --replicas 1 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 127.0.0.1:7005 127.0.0.1:7006 127.0.0.1:7007 127.0.0.1:7008 127.0.0.1:7009
备注:如果执行不成功。可以在前面加上ruby再运行 在出现
Can I set the above configuration? (type 'yes' to accept):
测试
- 使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息
- 命令
redis-cli –c –h "地址" –p "端口号"
, -c 表示集群 Cluster info
查看集群信息Dbsize
当前数据库的 key 的数量
可能错误
[ERR] Node 127.0.0.1:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains
some key in database 0.
原因:删除生成的配置文件nodes.conf,如果不行则说明现在创建的结点包括了旧集群的结点信息,需要删除redis的持久化文件后再重启redis,比如:appendonly.aof、dump.rdb
卸载和重装
- redis-server –service-uninstall –service-name redis7000
- 删除对应的数据文件 appendonly.aof和配置文件 nodes-.*.conf
- 重新安装