Redis在windows下集群搭建

原文地址:http://www.jianshu.com/p/22af55518f6d


一、开发环境

1、win7

2、redis 3.0 64位

3、ruby环境

二、相关安装

1、redis安装

参考:http://blog.csdn.net/littleskey/article/details/52241904

2、ruby环境准备

下载 64位的 RubyInstaller并安装 地址http://rubyinstaller.org/downloads/勾选下面三个不用配置环境变量


3、RubyGems安装

下载下来是一个压缩包,解压运行里面的 setup.rb 安装 rubyGems

(原文说ruby的源很慢,换成淘宝的源。本文实现时,淘宝的源已不可用,在此不更换源。如需更换,请查看原文)

4、下载redis-trib.rb

参照上文下载下来的redis包,没有该文件。到https://github.com/antirez/redis/tree/unstable/src 目录下下载。之前的ruby环境就是为运行这个文件做准备的。

三、Redis相关配置

文档说明:http://doc.redisfans.com/topic/cluster-tutorial.html#id5

要让集群正常运作至少需要三个主节点, 不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。

1、创建节点

创建六个文件夹,每个文件夹复制一份下载的Redis包。如:


2、修改redis.window.conf文件

(1)修改各个文件对应的端口号。如:

修改redis-lates1中redis.window.conf的port为7000

修改redis-lates2中redis.window.conf的port为7001

依次类推。

(2)公共部分

appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000

3、创建启动脚本startRedis.bat

这样不用总是敲命令,其他几个文件夹同理


4、启动集群

(1)启动上面所说各个redis实例

(2)到redis-trib.rb(没有参考二 4、下载redis-trib.rb)所在目录运行命令

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

redis-trib.rb
create, 这表示我们希望创建一个新的集群。
选项 --replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
之后跟着的其他参数则是实例的地址列表, 我们希望程序使用这些地址所指示的实例来创建新集群

(replicas 后为1不为小写L)

 以上命令的意思就是让 redis-trib 程序创建一个包含三个主节点和三个从节点的集群。

(3)执行结果

打印出配置信息,现在的master是 7000 7001 7002这三台机,redis会对key 做 CRC16 校验和后分别存储这三台机上。没问题就输入 yes(上例未输入yes,程序中止)

例如 7000 这台机 slots:0-5460 的意思是:

对key 做 CRC16 校验和后 值在 0-5460范围内都会存到这台机器里。例如 key=288 对应的CRC16校验和 为 4258,应该存在7000这台机里

四、Jedis编程使用集群

package com.learn.redis;

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

import org.junit.Before;
import org.junit.Test;

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

public class RedisClusterTest {
	private JedisCluster jc;
	
	@Before
	public void init()
	{
		Set<HostAndPort> nodes = new HashSet<>();
		//Jedis Cluster会自动发现集群中的节点
		nodes.add(new HostAndPort("127.0.0.1", 7000));
		jc = new JedisCluster(nodes);
		
	}
	
	@Test
	public void test()
	{
		jc.set("foo","bar");
		System.out.println(jc.get("foo"));
	}
	
}


 

阅读更多
文章标签: redis集群 windows
个人分类: redis
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭