Windows10搭建Redis集群及Java客户端测试Redis集群

本文介绍Redis-Cluster的原理与搭建步骤,包括槽、容错机制和选举过程,以及如何通过Java客户端进行集群测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis-Cluster

Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。
redis 3.0之后版本支持redis-cluster集群,它是Redis官方提出的解决方案,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。其redis-cluster架构图如下:
这里写图片描述
客户端与 redis 节点直连,不需要中间 proxy 层.客户端不需要连接集群所有节点连接集群中任何一个可用节点即可。
所有的 redis 节点彼此互联(PING-PONG 机制),内部使用二进制协议优化传输速度和带宽.

分布存储机制-槽

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

容错机制-投票

选举过程是集群中所有master参与,如果半数以上master节点与故障节点通信超过(cluster-node-timeout),认为该节点故障,自动触发故障转移操作. 故障节点对应的从节点自动升级为主节点

Redis集群搭建

下面搭建三主三从的Redis集群

安装ruby

从官方下载安装包
https://rubyinstaller.org/downloads/
版本如下
这里写图片描述
双击安装

安装rubygems

从官方中下载 zip包
https://rubygems.org/pages/download
这里写图片描述
选择zip

解压后,在cmd中使用setup.rb安装

gem安装redis

这里写图片描述

安装redis

redis是没有windows的安装文件,但Microsoft提供支持
从官方的github上下载
https://github.com/MicrosoftArchive/redis/releaseshttps://github.com/MicrosoftArchive/redis/releases
版本如下
这里写图片描述
创建文件夹D:\server\redis-cluster放6个redis安装包
把redis的zip解压到D:\server\redis-cluster\Redis-1

修改配置文件redis.windows.conf

port 6379
cluster-enable yes
appendonly yes
cluster-node-timeout 15000

cluster-enabled 选项用于开实例的集群模式,

其他的复制,修改端口为6380 6381 6382 6383 6384即可

编写一个 bat 来启动 redis,在每个节点目录下建立 start.bat,内容如下:

title redis-6380
redis-server.exe redis.windows.conf

启动集群

启动6个节点的 start.bat
下载redis-trib.rb 优快云的下载地址如下
https://download.youkuaiyun.com/download/james23vs24/10404681?utm_source=bbsseo
复制redis-trib.rb到D:\server\redis-cluster\Redis-1
集群命令,三主三从

redis-trib.rb create --replicas 1 127.0.0.1:6379 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

下面使用Java客户端测试Redis集群
引入依赖

        <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>

测试代码很简单,注释写的很详细

   @Test
    public void test1(){

        JedisPoolConfig poolConfig = new JedisPoolConfig();
        // 最大连接数
        poolConfig.setMaxTotal(1);
        // 最大空闲数
        poolConfig.setMaxIdle(1);
        // 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:
        poolConfig.setMaxWaitMillis(1000);
        Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();
        nodes.add(new HostAndPort("127.0.0.1", 6379));
        nodes.add(new HostAndPort("127.0.0.1", 6380));
        nodes.add(new HostAndPort("127.0.0.1", 6381));
        nodes.add(new HostAndPort("127.0.0.1", 6382));
        nodes.add(new HostAndPort("127.0.0.1", 6383));
        nodes.add(new HostAndPort("127.0.0.1", 6384));
        JedisCluster cluster = new JedisCluster(nodes, poolConfig);
        cluster.set("age", "18");
        System.out.println(cluster.get("age"));
        try {
            cluster.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
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】 。。。。。。。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值