Windows下Redis集群搭建

上一篇文章中介绍了Windows下使用cygwin搭建redis单节点,这一篇文件将在上一篇文章的基础上搭建redis集群。

1. 在安装redis的目录的同级目录下新建6个文件夹,7000,70001,7002,7003,7004,7005

      将./redis-stable/src/目录下面redis-server redis.conf两个文件复制到./7000/文件夹中,当前目录下使用命令:cp ./redis-stable/src/redis-server ./redis-stable/redis.conf ./7000,然后,修改redis.conf文件中内容,将下列值改为如下:

     port 7000                   #设置端口

     cluster-enabled yes  #打开集群支持

     cluster-config-file nodes.conf #节点配置文件名

     cluster-node-timeout 5000 #节点超时时间

      appendonly yes        #设置redis数据操作方式

      daemonize yes        #设置redis默认以后台程序方式运行

      注意:由于文件行数较多,可以在命令模式下使用 /要搜索的内容 来找到指定行,再使用命令 “ : number” 来跳转到指定行。如果要显示行号,可以修改 /etc/vimrc文件,在最后添加一行 : set nu

    

     7000文件夹下的redis.conf修改完成之后,把其下文件分别复制到7001~7005文件夹中, 并修改redis.conf中对应端口号。依次以后台方式启动7000-7005中的缓存实例, 命令:./7000/redis-server ./7000/redis.conf &

2. 在redis的src目录下执行创建集群命令创建集群

   ./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

2.1执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境

    错误内容:/usr/bin/env: ruby: No such file or directory,

    需要安装ruby的环境。这里双击cygwin.exe文件,安装ruby。可以参考上一篇文章中cygwin中安装gcc、make

2.2安装完成ruby后,再执行第6步的创建集群命令,还会报错,提示缺少rubygems组件。使用cygwin进行安装。

2.3再次执行第6步的命令,还会报错,提示不能加载redis,是因为缺少redis和ruby的接口,使用gem 安装。在redis的src目录下执行命令 gem install redis

   

2.4 再次执行集群创建命令


输入yes,使用默认的设置


 redis集群到这里就搭建完成了。另开一个窗口,输入 redis-cli -p 7000,然后输入 cluster nodes,就可以看到集群的节点信息。这里可以看到, 端口为7001、7002、7003的是master,其它的是slave


3. jedis访问redis集群

新建maven项目,添加pom依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.johnfnash.learn</groupId>
  <artifactId>redis-cluster-first</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>redis-cluster-first</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-pool2</artifactId>
          <version>2.4.2</version>
    </dependency>
    
    <dependency>
         <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>2.7.3</version>
    </dependency>
    
    <!-- junit -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

编写junit测试代码

import java.util.HashSet;
import java.util.Set;

import org.junit.Test;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.util.JedisClusterCRC16;

public class RedisClusterTest {

	@Test
	public void test() {
		Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
		//只需要添加一个实例,jedis会自动发现集群中其它节点
		jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7000));
		JedisCluster jc = new JedisCluster(jedisClusterNodes);
		
		String key = "1417";
		jc.setnx(key, "bar");
		String value = jc.get(key);
		System.out.println("key-" + key + " slot-" + JedisClusterCRC16.getSlot(key)
				+ " value-" + value);
		
		String key2 = "288";
		jc.setnx(key2, "bar2");
		String value2 = jc.get(key2);
		System.out.println("key-" + key2 + " slot-" + JedisClusterCRC16.getSlot(key2)
				+ " value-" + value2);
		try {
			Thread.sleep(2000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		} finally {
			if(null != jc) {
				jc.close();
			}
		}
	}

}

运行junit测试用例,结果如下:

接下来用redis客户端看看这两个key=1417 、key=288的值存到哪个节点下
看回最初的配置


key=288算出来的 CRC16校验和是 4258,根据配置 应该存在 7003这台机上

key=1417 算出来的 CRC16校验和是 13096,根据配置 应该存在 7002 这台机上

用redis 客户端查看数据存到哪台机器上


从redis客户端看到的结果与配置一致

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
windows环境下redis集群的搭建搭建频繁如下: redis集群测试 01、安装Redis 02、创建6个目录Redis7001、Redis7002、Redis7003、Redis7004、Redis7005、Redis7006 03、把Redis目录下的redis.windows.conf文件分别复制到上创建创建的6个文件夹中 04、修改6个文件夹中的redis.windows.conf文件 a、修改端口,分别对应 700* b、绑定IP,这里使用的是一台电脑,都设置为127.0.0.1 c、指定数据文件(appendonly.aof)的存放位置,dir C:/MySoftPath/Java/Redis/Redis700*/ d、开启集群模式,cluster-enabled yes e、集群文件配制信息(不用设置路径,自动在对应的700*下面),cluster-config-file nodes-700*.conf f、超时时间,cluster-node-timeout 5000 g、开启aof模式,appendonly yes h、数据文件名称,appendfilename "appendonly.aof" 05、启动这6个redis 06、安装ruby环境(rubyinstaller-2.2.4-x64.exe),注意(安装所有模块),后台需要使用此环境。 07、下载ruby环境下Redis的驱动“redis-3.2.2.gem”。 08、把“redis-3.2.2.gem”放到ruby环境下进行驱动,在所在的目录运行【gem install --local redis-3.2.2.gem】 09、把redis-trib.rb集群工具放在redis目录下,使用此工具创建集群 10、创建Redis集群【redis-trib.rb create --replicas 0 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】 11、注意,如果第10步没有反应也不报错,在redis-trib.rb命令前面使用ruby 【ruby redis-trib.rb create --replicas.........】 12、最后配上别人的博客【http://www.cnblogs.com/tommy-huang/p/6240083.html】 。。。。。。。。。。。。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值