Use Lettuce to operate Redis3.2.6 cluster
Lettuce uses Netty as the underlying communication framework
import java.util.ArrayList; import java.util.concurrent.ExecutionException; import com.lambdaworks.redis.RedisFuture; import com.lambdaworks.redis.RedisURI; import com.lambdaworks.redis.cluster.RedisClusterClient; import com.lambdaworks.redis.cluster.api.StatefulRedisClusterConnection; import com.lambdaworks.redis.cluster.api.async.RedisAdvancedClusterAsyncCommands; import com.lambdaworks.redis.cluster.api.sync.RedisAdvancedClusterCommands; public class LettuceClusterClient { public static void main(String[] args) { ArrayList<RedisURI> list = new ArrayList<>(); list.add(RedisURI.create("redis://192.168.37.128:7000")); list.add(RedisURI.create("redis://192.168.37.128:7001")); list.add(RedisURI.create("redis://192.168.37.128:7002")); list.add(RedisURI.create("redis://192.168.37.128:7003")); list.add(RedisURI.create("redis://192.168.37.128:7004")); list.add(RedisURI.create("redis://192.168.37.128:7005")); RedisClusterClient client = RedisClusterClient.create(list); //RedisClusterClient client = RedisClusterClient.create("redis://192.168.37.128:7000"); StatefulRedisClusterConnection<String, String> connect = client.connect(); /* Synchronous execution of commands */ RedisAdvancedClusterCommands<String, String> commands = connect.sync(); String str = commands.get("test2"); System.out.println(str); /* Asynchronously executed command */ // RedisAdvancedClusterAsyncCommands<String, String> commands= connect.async(); // RedisFuture<String> future = commands.get("test2"); // try { // String str = future.get(); // System.out.println(str); // } catch (InterruptedException e) { // e.printStackTrace (); // } catch (ExecutionException e) { // e.printStackTrace (); // } connect.close(); client.shutdown(); } }
The same code, executed with different Lettuce versions, may report exceptions, mainly because the introduced Netty version is bright, just modify the Netty version to the same
<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <!-- <version>4.0.14.Final</version> --> <!-- <version>4.1.6.Final</version> --><!-- lettuce 4.3 --> <version>4.0.36.Final</version><!-- lettuce 4.2 --> </dependency>