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();
    }
  }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值