windows下使用RedisCluster集群简单实例
2021-05-01 06:28
标签:cap 数字 version value 2.7 打印 安装 import == 下载 64位的 RubyInstaller并安装 地址http://rubyinstaller.org/downloads/ 下载下来是一个压缩包,解压运行里面的 setup.rb 安装 rubyGems 在cmd下运行 gem sources --remove https://rubygems.org/ 删掉原来的源 要让集群正常运作至少需要三个主节点,因此我们创建6个节点,三个主节点三个从节点,详细请查看文档,我简化一下文档的步骤即: 1.创建 6个文件夹分别为 7000-7005 2.创建配置文件 redis.conf port 7005 文件中的 3.创建启动脚本7005.bat @echo off 4.创建集群 1.按照上面所说的配置好各个实例,主要是改端口号,运行 7000.bat- 7005.bat脚本启动六个redis实例 2.cd到 redis-trib.rb 所在的目录下运行命令 打印出配置信息,现在的master是 7000 7001 7002这三台机,redis会对key 做 CRC16 校验和后分别存储这三台机上。没问题就输入 yes 例如 7000 这台机 slots:0-5460 的意思是: 对key 做 CRC16 校验和后 值在 0-5460范围内都会存到这台机器里 注意:使用前应该对业务做梳理,根据系统中key的特点来调整各个机器的slots范围, redis-trib.rb文件在下载下来的redis包里可能是没有的,可以到 命令的意义如下: redis-trib.rb 简单来说, 以上命令的意思就是让 redis-trib 程序创建一个包含三个主节点和三个从节点的集群。 看看node.conf文件里生成了什么 里面记录了master 和 slave的对应关系,例如图片里的 7000是master 而对应的 slave是7003这台机,绿色的一长串数字是对应机器的Id,redis以此来标记一台机器。 github地址 https://github.com/xetorthio/jedis 添加Jedis依赖 测试代码: github上有这一句,Jedis Cluster 会自动去发现集群中的节点,所以JedisClusterNodes只需要 add一个实例 运行得到结果 接下来用redis客户端看看这两个key=1417 、key=288的值存到哪个节点下 key=288算出来的 CRC16校验和是 4258,根据配置 应该存在 7000这台机上 用redis 客户端查看数据存到哪台机器上 进去7000这台机上 从redis客户端看到的结果与配置一致 JedisFactory类 Title: JedisClusterFactory.java
* Description:
* @author qiaowei liu
* @date 2016-1-14
* @version 1.0
*/
public class JedisClusterFactory {
/**
* @Description
* @author qiaowei liu
* @date 2016-1-14 上午11:00:18
* @param args
*/
private JedisCluster jedisCluster;
public JedisCluster getJedisCluster() {
return jedisCluster;
}
public JedisClusterFactory(JedisPoolConfig jedisPoolConfig,String host,int port){
Set JedisProvide.java工具类,主要是封装些常用的操作 Title: RedisProvide.java
* Description:
* @author qiaowei liu
* @date 2016-1-8
* @version 1.0
*/
public class RedisProvide implements CacheSecondLevel {
private JedisCluster jedisCluster;
public RedisProvide(JedisClusterFactory jedisClusterFactory){
jedisCluster=jedisClusterFactory.getJedisCluster();
}
@Override
public Object get(String key){
return jedisCluster.get(key);
}
@Override
public Object[] gets(String[] keys) {
// TODO Auto-generated method stub
return null;
}
@Override
public void set(String key, Object obj) {
// TODO Auto-generated method stub
jedisCluster.set(key, obj.toString());
}
@Override
public void delete(String key) {
// TODO Auto-generated method stub
jedisCluster.del(key);
}
} applicationContext.xml配置 conf/perproties windows下使用RedisCluster集群简单实例 标签:cap 数字 version value 2.7 打印 安装 import == 原文地址:http://www.cnblogs.com/ZJOE80/p/7792439.html一、开发环境
ruby环境准备
勾选下面三个不用配置环境变量安装RubyGems
由于墙的原因ruby自带的源有时候很慢,我们换成淘宝的源,不然下面安装redis依赖会失败。
gem sources -a http://ruby.taobao.org 添加淘宝源
gem sources -l 查看现有的源
gem install redis 安装redis依赖二 、使用redis cluster
这里就是做集群时各个机器所安装的redis,在每个文件夹放一份下载下来的redis,例如
其他几个7000-7004文件夹以此类推,注意修改对应的端口号
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
cluster-enabled 选项用于开实例的集群模式,
cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为nodes.conf 。
nodes.conf 节点配置文件无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新。
这样不用总是敲命令 ,名字随意改,其他几个文件夹同理
redis-server.exe redis.conf
@pause
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
例如 key=288 对应的CRC16校验和 为 4258,应该存在7000这台机里
不然系统的key基本集中在一两台机器上集群的效果就不大了
https://github.com/antirez/redis/tree/unstable/src 目录下下载
之前的ruby环境就是为运行这个文件做准备的
create, 这表示我们希望创建一个新的集群。
选项 --replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
之后跟着的其他参数则是实例的地址列表, 我们希望程序使用这些地址所指示的实例来创建新集群。三、Jedis编程使用集群
按上面两步配置好,创建并启动集群。测试代码如下:
@Test
public void cluster(){
String key = "1417";
Set
看回最初的配置
key=1417 算出来的 CRC16校验和是 13096,根据配置 应该存在 7002 这台机上
get 288拿到了value bar2
get 1417 得到提示让去 7002这台机查四、简单集成Spring
传入host 、port 和JedisPoolConfig 类package your path;
import java.util.HashSet;
import java.util.Set;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;
/**
*
package your path;
import your path.CacheSecondLevel;
import redis.clients.jedis.JedisCluster;
/**
*
#redis config
redis.host=127.0.0.1
redis.port=7000
redis.timeout=100000
redis.maxIdle=300
redis.maxTotal=600
redis.timeBetweenEvictionRunsMillis=30000
redis.minEvictableIdleTimeMillis=30000
redis.testOnBorrow=true
文章标题:windows下使用RedisCluster集群简单实例
文章链接:http://soscw.com/index.php/essay/80747.html