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