1.Redishtml
Redis官方只有Linux版本,并不支持Windows版本。但微软的开源项目组维护了Windows64位的版本。 详见地址: https://github.com/MicrosoftArchive/redis.这次下载的版本为Redis-x64-3.2.100.zip,也msi版本安装,推荐使用zip压缩包的方式。解压以下图所示:
前端
其中redis-server.exe为redis启动程序,redis.windows.conf是redis的配置文件,redis-cli.exe是redis的链接客户端,也可以使用图形化客户端工具Redis Desktop Manager.node
2.Ruby运行环境webpack
Redis集群使用Ruby语言编写的,所以须要Ruby语言环境的支持。下载地址: https://rubyinstaller.org/downloadsgit
安装时以上选项所有勾选!github
3.RubyGemsweb
RubyGems是Ruby的打包的管理框架,有点相似前端的webpack。下载地址: https://rubygems.org/pages/download. Windows下载zip压缩包,解压,运行文件夹里setup.rb安装RubyGems。 安装完成后,在命令行工具里就可查看到安装的ruby,gems版本。redis
因为墙的缘由,gems自带的源访问速度很慢,这里添加国内的镜像,Ruby China (淘宝的镜像的管理工做将交由Ruby China负责)。windows
在Cmd下运行:ruby
1. gem source -l 查看当前全部的源 2. gem source -a xxx 添加源 3. gem source -r xxx 删除源 4. gem install redis 安装Redis依赖
1.建立节点文件
要让集群正常运做至少须要三个主节点, 不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其他三个则是各个主节点的从节点。详见官方命令教程:http://doc.redisfans.com/topic/cluster-tutorial.html#id5.
将准备工做中下载的Redis-x64-3.2.100.zip解压后的文件,放入指定目录,并复制成6份相同的文件夹,以节点端口号命名为6380-6385。
2.修改节点配置文件
修改每一个文件夹下的配置文件redis.windows.conf,这里以6380为例,设置一下几个属性, 注意将前面的注释符号#去掉
port 6380 cluster-enabled yes cluster-config-file nodes-6380.conf cluster-node-timeout 15000 appendonly yes
文件中的 cluster-enabled 选项用于开实例的集群模式, 而 cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为 nodes.conf 。
节点配置文件无须人为修改, 它由 Redis 集群在启动时建立, 并在有须要时自动进行更新。
3.建立启动脚本文件 在每一个文件夹下建立脚本start.bat,建立脚本目的只是不须要重复敲命令, 文件内容以下:
redis-server.exe redis.windows.conf
4.建立集群
分别运行6个文件夹里的start.bat,来启动6个Redis实例。
在外层文件夹下,建立一个ruby文件,redis-trib.rb. 内容能够从源码获取: https://github.com/MicrosoftArchive/redis/releases,
cmd下执行命令
redis-trib.rb create --replicas 1 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 127.0.0.1:6385
命令的意义以下:给定 redis-trib.rb 程序的命令是 create , 这表示咱们但愿建立一个新的集群。 选项 --replicas 1 表示咱们但愿为集群中的每一个主节点建立一个从节点。 以后跟着的其余参数则是实例的地址列表, 咱们但愿程序使用这些地址所指示的实例来建立新集群。 简单来讲, 以上命令的意思就是让 redis-trib 程序建立一个包含三个主节点和三个从节点的集群。
若是出现下面的状况,说明以前已经创建了集群了,下图意思代表6380节点已经与其余节点创建联系或者包含了数据。Redis集群只需创建一次便可,若是有节点挂掉,只需从新启动该节点,集群就会正常工做。
接着, redis-trib 会打印出一份预想中的配置给你看, 若是你以为没问题的话, 就能够输入 yes , redis-trib 就会将这份配置应用到集群当中:
输入 yes 并按下回车确认以后, 集群就会将配置应用到各个节点, 并链接起(join)各个节点 —— 也便是, 让各个节点开始互相通信。若是一切正常的话, redis-trib 将输出如下信息:
这表示集群中的 16384 个哈希槽都有至少一个主节点在处理, 集群运做正常。
下面看看节点的配置文件里有什么内容:
文件中清楚的说明了6380/6381/6382是主节点,6383/6384/6385是从节点,而且一 一对应。
本例使用Spring Boot集成Redisson,进行测试,Spring Boot版本为1.5.2.RELEASE 。
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.3.2</version> </dependency>
address变量值能够配置在application.properties属性文件里,这里不在演示。 注意此处的Config 使用集群配置
@SpringBootConfiguration public class RedisLoader { @Bean(name = "clusterRedissonClient") public RedissonClient clusterServerConfig(){ Config config = new Config(); config.useClusterServers() .addNodeAddress("127.0.0.1:6380") .addNodeAddress("127.0.0.1:6381") .addNodeAddress("127.0.0.1:6382") .addNodeAddress("127.0.0.1:6383") .addNodeAddress("127.0.0.1:6384") .addNodeAddress("127.0.0.1:6385"); return Redisson.create(config); } }
3.测试代码
@SpringBootTest @RunWith(SpringJUnit4ClassRunner.class) public class RedisTest { @Resource(name = "clusterRedissonClient") private RedissonClient redissonClient; @Test public void t(){ RBucket<String> name = redissonClient.getBucket("name"); name.set("张三"); } @Test public void t1(){ RBucket<String> name = redissonClient.getBucket("name"); String s = name.get(); System.out.println(s); } }
4.设置测试运行结果: 日志中的: master: redis://127.0.0.1:6381 added for slot ranges: [[10923-16383]],意思是6381机器对应卡槽范围是10923-16383。对key 作 CRC16校验后,值在 10923-16383范围内都会存到这个端口里。
咱们如今看看,保存在哪一个端口上了:
能够清晰的看出被保存在6381端口上了,而6384是6381的从节点,所以也有该数据。
5.获取测试运行结果
咱们看到已经从集群中获取到刚才设置的值。