配置redis集群
一:下载redis
redis3.0以上开始支持集群,自行下载
http://download.redis.io/releases/
二:配置redis
新建目录
D:\soft\Redis\Redis_colony
以端口号命名.因为集群要求三个主,三个从,所以需要六个.
不能自行设置,启动后会自行分配.(也许可以,还没研究到那步)
右键编辑 redis.windows.conf
修改以下参数
port 6379 --这个是端口号,修改对应的
cluster-enabled yes --启用集群,yes
cluster-config-file nodes-6379.conf --是为该节点的配置信息,这里使用 nodes-端口.conf
命名方法。服务启动后会在目录生成该文件。
cluster-node-timeout 15000 --调整为15000,那么在创建集群的时候,不会超时。
appendonly yes --持久化记录(以日志记录,即使删除了数据,也可以通过这个
还原),默认是no
参考:https://blog.youkuaiyun.com/weixin_39040059/article/details/79120444
编写一个 bat 来启动 redis,在每个节点目录下建立 startup.bat,内容如下:
title redis_8081
redis-server.exe redis.windows.conf
三: Ruby安装
下载地址: https://rubyinstaller.org/downloads/
教程用的是这个
有说选前两个.这里我三个都选了
四. 安装Redis的Ruby驱动redis-xx.gem
下载地址 https://rubygems.org/pages/download
下载后解压,当前目录切换到解压目录中,如 D:\tools\rubygems 然后在命令行(win+r)执行
ruby setup.rb
我好像就到这步.下面这些没执行:
====================================================
然后GEM 安装 Redis :切换到redis安装目录,需要在命令行中,执行
gem install redis
***这时可能或出现以下错误(划重点):***
1.连接超时(TimeOut):
解决办法如下 命令窗口输入:
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.org
# 请确保只有 gems.ruby-china.org
gem install redis
2.若设置 source时出现https://gems.ruby-china.org/ is not a url:
可以去配置文件修改,位置在 c:/User/用户名/.gemrc
打开文件修改source,如下:
保存,然后 cmd 窗口输入 gem sources -l,效果如下:
卧槽 什么 还是gem install redis 失败????
手动下载,地址:https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem
命令窗口到这个文件的下载目录,执行:
gem install -l ./redis-3.2.2.gem
ok gem终于安装上了redis(滑稽)
==================================================
五.安装集群脚本redis-trib
下载地址 https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb
打开该链接如果没有下载,而是打开一个页面,那么将该页面ctrl+A全选,ctrl+c ,保存为redis-trib.rb,建议保存到一个Redis的目录下。
这个地址时好时坏,直接去另外一个
https://github.com/beebol/redis-trib.rb
或直接下载
https://github.com/beebol/redis-trib.rb/blob/master/redis-trib.rb
六.启动每个节点,执行集群构建脚本
双击每个节点下的 startup.bat, 到redis文件夹中打开命令窗口(比如进入6379文件夹),输入以下指令:
redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
上述命令 --replicas 1 表示每个主节点拥有从节点个数为1。
master节点(主节点)不能少于3个,所以我们用了6个redis(3主+3从)
在出现 Can I set the above configuration? (type ‘yes’ to accept): 请确定并输入 yes
七.测试集群
控制窗口进入到redis文件下,比如我们进入6380文件下,输入:
redis-cli -c -h 127.0.0.1 -p 6380
(命令 redis-cli –c –h ”地址” –p “端口号” ; c 表示集群),效果如下:
然后输入cluster info,如图:
查看集群具体节点信息,输入cluster nodes :
集群成功!
输入一条数据来测试,如下图在主节点6380中set了一个字符串:
输入 info replication,看6380的主从关系,如图 6380的从节点为6384:
去6384看keys:
ok,主从同步,集群完成
参考地址:https://blog.youkuaiyun.com/woheniccc/article/details/79611050
=====================================================
接着程序中改动:
appsettings.json
"RedisCache": {
"ConnectionString": "127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384",
"DatabaseId": "-1"
},
DatabaseId一定要设置为-1,因为集群默认走0,而我之前是设置为6,导致一直取不到.
==========================================================
集群还有参考资料
https://www.cnblogs.com/kellynic/p/9803314.html#top
听说这个也是有人用
https://blog.youkuaiyun.com/qin_yu_2010/article/details/84262742
这个也有介绍其他种的