`
zhoupinheng
  • 浏览: 36134 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java访问Redis5集群

阅读更多

pox文件

<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.kovansys.test</groupId>
  <version>1.1.0</version>

  <artifactId>redis_test</artifactId>

  <packaging>jar</packaging>

  <properties>

    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>

    <logback.version>1.2.3</logback.version>
    <slf4j.version>1.7.26</slf4j.version>
    <junit.version>5.4.1</junit.version>
    <java.encoding>UTF-8</java.encoding>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jedis.version>3.0.0</jedis.version>
    <commons-pool2.version>2.4.3</commons-pool2.version>
    <lettuce.version>5.0.0.RELEASE</lettuce.version>

  </properties>

  <build>
    <directory>target</directory>


    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
      </plugin>

    </plugins>

  </build>


  <dependencies>
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>${jedis.version}</version>
    </dependency>

    <dependency>
      <groupId>io.lettuce</groupId>
      <artifactId>lettuce-core</artifactId>
      <version>${lettuce.version}</version>
    </dependency>


    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
      <version>${commons-pool2.version}</version>
    </dependency>

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>${logback.version}</version>
    </dependency>

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>${logback.version}</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
      <version>${slf4j.version}</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>log4j-over-slf4j</artifactId>
      <version>${slf4j.version}</version>
    </dependency>

  </dependencies>

</project>

 

    用 Jedis连接java实现代码:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

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

public class JRedisClusterJava {
  public static void main(String[] args) {
    try {
      // Connecting to Redis server on localhost
      Set<HostAndPort> set = new HashSet<HostAndPort>();
      set.add(new HostAndPort("192.168.0.180", 7000));
      set.add(new HostAndPort("192.168.0.180", 7001));
      set.add(new HostAndPort("192.168.0.180", 7002));
      set.add(new HostAndPort("192.168.0.180", 7003));
      set.add(new HostAndPort("192.168.0.180", 7004));
      set.add(new HostAndPort("192.168.0.180", 7005));

      JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
      jedisPoolConfig.setMaxIdle(300);
      jedisPoolConfig.setMaxTotal(5000);
      jedisPoolConfig.setMinIdle(6);
      jedisPoolConfig.setMaxWaitMillis(2000);
      jedisPoolConfig.setTestOnBorrow(true);
      JedisCluster jedis = new JedisCluster(set, 2000, 2000, 2, "test123", jedisPoolConfig);

      System.out.println("Connection to server sucessfully");

      long startTime = System.currentTimeMillis();

      for (int i = 0; i < 100000; i++) {
         jedis.set(String.valueOf(i), String.valueOf(i));
         String value = jedis.get(String.valueOf(i));
         //System.out.println(value);
      }

      System.out.println("Jedis Cost time:" + (System.currentTimeMillis() - startTime));
      jedis.close();
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

}



}

 

    用Lettuce 实现代码:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

import io.lettuce.core.RedisURI;
import io.lettuce.core.cluster.RedisClusterClient;
import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;
import io.lettuce.core.support.ConnectionPoolSupport;

public class LettuceClusterJava {
  public static void main(String[] args) {
    try {
      // Connecting to Redis server on localhost
      Set<RedisURI> nodeSet = new HashSet<RedisURI>();
      nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7000"));
      nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7001"));
      nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7002"));
      nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7003"));
      nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7004"));
      nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7005"));

      RedisClusterClient clusterClient = RedisClusterClient.create(nodeSet);

      GenericObjectPoolConfig jedisPoolConfig = new GenericObjectPoolConfig();
      jedisPoolConfig.setMaxIdle(300);
      jedisPoolConfig.setMaxTotal(5000);
      jedisPoolConfig.setMinIdle(6);
      jedisPoolConfig.setMaxWaitMillis(2000);
      jedisPoolConfig.setTestOnBorrow(true);

      GenericObjectPool<StatefulRedisClusterConnection<String, String>> pool = ConnectionPoolSupport.createGenericObjectPool(() -> clusterClient.connect(), jedisPoolConfig);

      long startTime = System.currentTimeMillis();

      execute work
      try (StatefulRedisClusterConnection<String, String> connection = pool.borrowObject()) {
       System.out.println("Connection to server sucessfully");
      
       for (int i = 0; i < 100000; i++) {
           connection.sync().set(String.valueOf(i), String.valueOf(i));
           String value = connection.sync().get(String.valueOf(i));
           // System.out.println(value);
       }
      
       System.out.println("Cost time:" + (System.currentTimeMillis() - startTime));
      
       }
      // terminating
      pool.close();

      System.out.println("Cost time:" + (System.currentTimeMillis() - startTime));

      clusterClient.shutdown();
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

}

 

分享到:
评论

相关推荐

    阿里云公网redis集群搭建以及java访问redis集群

    阿里云公网Redis集群搭建及Java访问教程 在云计算日益普及的今天,阿里云提供了便捷的公共服务,如Redis缓存服务,帮助企业或个人快速构建高效、可靠的分布式应用。本教程将详细讲解如何在阿里云上搭建公网Redis...

    80.java访问redis级redis集群?.avi

    .java访问 redis集群?

    Java面试题80:java访问redis级redis集群?.mp4

    Java面试题80:java访问redis级redis集群?.mp4

    使用java时间连接池连接redis,单例模式和集群模式.docx

    Java 连接 Redis 集群的实现 在这个资源中,我们将探讨如何使用 Java 客户端连接 Redis 集群,并实现单例模式和集群模式的连接。 Redis 集群 Redis 集群是一种高可用性的 Redis 部署方式,通过将多个 Redis 节点...

    java连接Redis所需jar包

    7. 高可用性配置:如果Redis集群使用了Sentinel,可以使用JedisSentinelPool,它会自动检测主从切换,并提供新的Jedis实例。 总的来说,Java连接Redis主要依赖于Jedis库和Apache Commons Pool库。通过这两个库,...

    RedisCluster集群(Spring访问Redis)

    **RedisCluster集群与Spring访问Redis详解** Redis是一个高性能的键值数据库,广泛应用于缓存、消息中间件等场景。在大型分布式系统中,为了提供高可用性和数据冗余,我们通常会采用Redis Cluster来构建集群。本文...

    Redis-5.0.0集群配置

    - **Jedis (Java Cluster Client)**: Java应用程序可以通过Jedis客户端库来连接Redis集群。 - **r3c (C++ Cluster Client)**: 对于使用C++开发的应用程序,可以使用r3c作为客户端库。 #### 11. 新增节点 - **添加...

    spring + redis集群

    本文将深入探讨如何使用Spring Data Redis构建一个Redis集群,以及如何通过Spring框架来操作Redis集群,存储对象集合,并提供一个基于Maven的可运行项目示例。 首先,Spring Data Redis是Spring框架的一个模块,它...

    java的redis项目

    当单个Redis实例无法满足需求时,可以搭建Redis集群。Spring Boot同样提供了对集群的支持,可以连接多个节点并自动处理数据分布。 10. **监控与性能调优** 使用`spring-boot-actuator`模块可以监控Redis的相关...

    redis集群第三方库

    Redis 集群第三方库是实现 Redis 集群功能时不可或缺的一部分,它们通常包含了扩展 Redis 功能或者优化集群操作的工具和库。在 Redis 的生态系统中,许多开发者和社区贡献者开发了各种各样的库来帮助管理和操作...

    redis 集群安装 ruby 资源报

    `jar` 文件通常包含 Java 运行时环境或者相关的库,可能在某些情况下用于 Redis 集群的配置或管理工具,比如 Jedis,这是一个 Java 客户端,可以与 Redis 服务器进行交互。然而,描述中没有具体说明需要哪个 `jar` ...

    springmvc与redis4.5集群集成

    1. **添加依赖**:同样,需要引入Jedis或Lettuce的集群支持库,它们提供了对Redis集群的访问。 2. **配置集群节点**:在`JedisCluster`或`LettuceClientConfiguration`中,配置Redis集群的所有节点地址和端口,以及...

    redis-2.8.12内涵集群搭建方案

    为了访问集群,你需要一个支持Redis集群的客户端。例如,`Jedis`库(Java)或`StackExchange.Redis`(.NET)都提供了集群支持。在应用程序中配置多个服务器地址,并指定为集群模式即可连接。 以上就是在Windows 10 ...

    java-redis-proxy:redis 集群代理 netty

    标题中的"java-redis-proxy"指的是一个Java实现的Redis代理服务,它的主要作用是作为客户端与Redis集群之间的中间层,以管理和优化对Redis集群的访问。通过使用代理,可以实现负载均衡、故障转移、数据路由等功能,...

    java对redis的基本操作

    ### Java对Redis的基本操作 #### 一、Redis服务器端安装及配置 1. **下载**: - 访问[MSOpenTech/redis](https://github.com/MSOpenTech/redis)页面,下载适用于Windows平台的`redis2.6`版本。 - 解压缩后,根据...

    linux redis集群部署

    以下是对Redis集群的一些核心特性的详细介绍: 1. **节点自动发现**:集群内的节点能够自动识别其他节点的存在,从而简化了集群管理和维护的工作量。 2. **Slave到Master选举**:在某些节点出现故障的情况下,集群...

    nginx+lua+redis 集群 连接插件和脚本

    本资源包“nginx+lua+redis集群 连接插件和脚本”正是为了解决这三者之间的协同工作,特别是针对原插件没有密码功能的问题进行了改进,使得安全性得到了提升。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器...

    redis高可用笔记,包括RedisCluster集群方式和完全纯手写Redis缓存框架

    为了确保服务的稳定性和可靠性,Redis提供了多种高可用解决方案,其中最常见的是Redis Cluster集群模式以及自定义的手工搭建的缓存框架。下面将对这两个方面进行详细探讨。 ### Redis Cluster集群 Redis Cluster是...

    03-VIP-Redis缓存高可用集群(预习)1

    6. **Java操作Redis集群**:在Java应用中操作Redis集群,需要引入相应的Redis客户端库,如Jedis或Lettuce,它们支持与Redis集群的交互,包括读写操作、事务处理、发布订阅等功能。 **注意事项**: - 集群中的节点应...

    redis4.0.x集群创建及问题处理

    - 在本地机器上,可以编写Java程序,利用Jedis客户端连接到阿里云服务器上的Redis集群,进一步验证集群功能。 #### 三、常见问题与解决方案 在搭建Redis集群的过程中,可能会遇到各种各样的问题。以下是一些常见的...

Global site tag (gtag.js) - Google Analytics