码上敲享录 > Redis教程(java) > Redis 集群搭建(windows入门级)

Redis 集群搭建(windows入门级)

上一章章节目录下一章 2020-01-10已有5149人阅读 评论(0)

v 下载Redis-x64-3.2.100.zip

Windows版本下载:https://github.com/MicrosoftArchive/redis/tags


v 修改redis.windows.conf配置文件支持集群

Redis-x64-3.2.100.zip解压为Redis-x64-3.2.100目录,把配置文件中的属性修改成以下配置,port改成你想要的端口,我这里使用700070017002700370047005六个端口演示。其中cluster-enabled指开启集群模式, cluster-conf-file 设定保存节点配置文件的路径, 默认值为 nodes.conf,节点配置文件无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新。要让集群正常运作至少需要三个主节点,现在使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。

port 7000

cluster-enabled yes

cluster-config-file nodes-7000.conf

cluster-node-timeout 5000

appendonly yes


v 创建6redis实例

在桌面C:\Users\sun\Desktop创建cluster-redis目录,复制6份上面Redis-x64-3.2.100目录到cluster-redis目录并分别重命名为端口名700070017002700370047005方便区分,到各个目录修改redis.windows.conf的端口portcluster-config-file值要加上端口(例如nodes-7000.conf),并分别在700070017002700370047005下创建startup.bat文件,方便启动redis,双击就可以启动redis实例。

例如7000目录startup.bat的内容:

cd C:\Users\sun\Desktop\cluster-redis\7000\

redis-server.exe redis.windows.conf

分别到700070017002700370047005双击运行startup.bat文件就可以启动6redis实例。


v 使用 Redis集群命令行工具 redis-trib创建新集群, 检查集群, 或者对集群进行重新分片(reshared)等工作。

(1)下载Ruby

redis-trib是一个 Ruby 程序,所以要安装Ruby,我下载rubyinstaller-2.7.0-1-x64.exe

下载地址:https://rubyinstaller.org/downloads/


2)安装Ruby,默认下一步即可。


3)下载rubygems

下载地址:https://rubygems.org/pages/download,我下的是压缩包ziprubygems-3.1.2.zip

我解压到D:\download\rubygems-3.1.2,命令窗口切换到D:\download\rubygems-3.1.2下执行:

ruby setup.rb


4Redis集群需要通过gem install redis来安装相关依赖,定位到C:\Users\sun\Desktop\cluster-redis目录执行:gem install redis


成功的打印结果:

C:\Users\sun\Desktop\cluster-redis>gem install redis

Fetching redis-4.1.3.gem

Successfully installed redis-4.1.3

Parsing documentation for redis-4.1.3

Installing ri documentation for redis-4.1.3

Done installing documentation for redis after 1 seconds

1 gem installed


5)下载redis-trib.rb文件

下载地址:https://github.com/beebol/redis-trib.rb

我放到C:\Users\sun\Desktop\cluster-redis目录下

6)创建集群,在C:\Users\sun\Desktop\cluster-redis目录下执行:

ruby 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

中途要输入yes回车即可。

Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽

从下面创建集群时打印结果可以看到:

7000包含05460号哈希槽,70037000的从节点

7001包含546110922号哈希槽,70047001的从节点

7002包含1092316383号哈希槽,70057002的从节点


v 测试

1.使用7000实例的客户工具添加key7000,值为7000,值放到6769哈希槽

C:\Users\sun\Desktop\cluster-redis\7000>redis-cli.exe -c -h 127.0.0.1  -p 7000

127.0.0.1:7000> set key7000  7000

-> Redirected to slot [6769] located at 127.0.0.1:7001

OK


2.使用7001实例的客户工具添加key7001,值为7001,值放到2640哈希槽

C:\Users\sun\Desktop\cluster-redis\7001>redis-cli.exe -c -h 127.0.0.1  -p 7001

127.0.0.1:7001> set key7001 7001

-> Redirected to slot [2640] located at 127.0.0.1:7000

OK


3.使用7001实例的客户工具从6769哈希槽中获取key7000和从2640哈希槽中获取key7001

127.0.0.1:7000> get key7000

-> Redirected to slot [6769] located at 127.0.0.1:7001

"7000"

127.0.0.1:7001> get key7001

-> Redirected to slot [2640] located at 127.0.0.1:7000

"7001"


结论:

无论客户端连接哪个redis实例,集群都会根据保存的key的哈希值存到响应的哈希槽中,不一定存储在所连接的redis实例中。获取值得时候也是根据key的哈希值去相应的哈希槽中读取。


1

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交