1. 下载redis
Windows版本下载:https://github.com/MicrosoftArchive/redis/tags
然后进入目录执行命令redis-server.exe redis.windows.conf
2. 设置6个节点
在redis中必须要有3个master,每个master必须要有一个slave,所有是六个节点,通过复制的方式完成,如图
每个节点修改的配置如下,端口号对应节点的端口号6379~6384:
port 6379
bind 127.0.0.1
logfile "6379.log"
dbfilename "dump-6379.rdb"
cluster-enabled yes
cluster-config-file nodes-6379.conf
appendonly yes
requirepass myredis
masterauth myredis
然或启动每一个节点:redis-server.exe redis.windows.conf
3. 安装必要的软件
-
安装Ruby,默认下一步即可 https://jingyan.baidu.com/article/5553fa827b5d7d65a23934ba.html
-
下载rubygems:https://rubygems.org/pages/download,在解压目录下执行
ruby setup.rb
-
Redis集群需要通过gem install redis来安装相关依赖,定位到某一个redis目录下执行
gem install redis
4. 构建集群
下载对应的集群构建脚本:https://github.com/beebol/redis-trib.rb,然后执行命令ruby 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
5. redis集群测试
-
在6379节点下执行
redis-cli -c -h 127.0.0.1 -p 6379
,然后查看下集群信息cluster info
-
然后在6379节点下set一个value,
set key1 value1
-
然后查看下对应的从节点信息
info replication
,我这里是6382 -
进入到6382的cli
redis-cli -c -h 127.0.0.1 -p 6382
,查看是否同步数据keys *
总结
redis中式通过将对应的key进行hash,然后落在对应的hash槽中,并不一定是存储在当前连接的redis实例中;获得的时候也是按照key的hash值去对应槽的实例中读取
FAQ
Unrecognized option or bad number of args for: ‘–cluster’…
下载的 redis-trib.rb 文件不符合windows下的版本,使用如下文件:
链接: https://pan.baidu.com/s/1Uy7MdG4N8hJkOU7g0LmTcA 提取码: uk3v 复制这段内容后打开百度网盘手机App,操作更方便哦
Node 127.0.0.1:6380 is not empty. Either the node already knows other nodes …
删除每个节点下临时生成的文件,如dump.rdb、nodes.conf、*.aof
Redis Cluster Error:ERR Slot xxx is already busy (Redis::CommandError)
进入所有redis节点,分别执行如下命令:
flushall
cluster reset soft
参考连接
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/17818.html