Skip to content

Connection Setup

  • Lettuce offers multiple constructors for different connection configurations
  • Glide uses a single configuration object that comes pre-configured with best practices

Glide typically requires minimal configuration changes for:

  • Timeout settings
  • TLS configuration
  • Read from replica settings
  • User authentication (username & password)

For advanced configurations, refer to the Jave Glide Guides.

RedisClient client = RedisClient.create("redis://localhost");
StatefulRedisConnection<String, String> connection = client.connect();
RedisCommands<String, String> syncCommands = connection.sync();
// With options
RedisURI redisUri = RedisURI.Builder.redis("localhost")
.withPassword("password")
.withDatabase(2)
.build();
RedisClient clientWithOptions = RedisClient.create(redisUri);
StatefulRedisConnection<String, String> connectionWithOptions = clientWithOptions.connect();
RedisCommands<String, String> syncCommandsWithOptions = connectionWithOptions.sync();
RedisURI redisUri = RedisURI.create("redis://localhost:7000");
RedisClusterClient clusterClient = RedisClusterClient.create(redisUri);
StatefulRedisClusterConnection<String, String> connection = clusterClient.connect();
RedisAdvancedClusterCommands<String, String> syncCommands = connection.sync();
// With multiple nodes
List<RedisURI> nodes = Arrays.asList(
RedisURI.create("redis://localhost:7000"),
RedisURI.create("redis://localhost:7001")
);
RedisClusterClient clusterClientMultiNodes = RedisClusterClient.create(nodes);
// With options
RedisURI redisUriWithOptions = RedisURI.Builder.redis("localhost", 7000)
.withPassword("password")
.build();
RedisClusterClient clusterClientWithOptions = RedisClusterClient.create(redisUriWithOptions);

The table below compares Lettuce constructors with Glide configuration parameters:

Lettuce ParameterEquivalent Glide Configuration
RedisURI.create("redis://host:port")GlideClientConfiguration.builder().address(NodeAddress.builder().host("host").port(port).build()).build()
RedisURI.Builder.redis(host, port)NodeAddress.builder().host(host).port(port).build()
withPassword("password")credentials(ServerCredentials.builder().password("password").build())
withUsername("username")credentials(ServerCredentials.builder().username("username").build())
withDatabase(2)- Use client.select(db) after connection
withSsl(true)useTLS(true)
withTimeout(Duration.ofMillis(500))requestTimeout(500)
ReadFrom.REPLICAreadFrom(ReadFrom.REPLICA) / readFrom(ReadFrom.PREFER_REPLICA) / readFrom(ReadFrom.AZ_AFFINITY) / readFrom(ReadFrom.AZ_AFFINITY_REPLICAS_AND_PRIMARY) Read about AZ affinity
SocketOptions.builder().connectTimeout()connectionBackoff(ConnectionBackoffStrategy.builder().numberOfRetries(retries).build())
lazyConnect: booleanNot suppoerted yet

Advanced configuration

Standalone Mode uses GlideClientConfiguration and Cluster Mode uses GlideClusterClientConfiguration, but the usage is similar:

// Standalone mode
GlideClientConfiguration config = GlideClientConfiguration.builder()
.address(NodeAddress.builder()
.host("localhost")
.port(6379)
.build())
.requestTimeout(500)
.build();
GlideClient client = GlideClient.createClient(config).get();
// Cluster mode
GlideClusterClientConfiguration clusterConfig = GlideClusterClientConfiguration.builder()
.address(NodeAddress.builder()
.host("localhost")
.port(7000)
.build())
.requestTimeout(500)
.build();
GlideClusterClient clusterClient = GlideClusterClient.createClient(clusterConfig).get();