Basic use of Lettuce (2) -- cluster

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>

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326915234&siteId=291194637