Timeouts and Reconnect Strategy
Valkey GLIDE allows you to configure timeout settings and reconnect strategies. These configurations can be applied through the client configuration parameters.
Configuration Settings
Section titled “Configuration Settings”| Configuration Setting | Description | Default Value |
|---|---|---|
| Request Timeout | This specified timeout duration represents the period during which the client will await the completion of a request. This includes the process of sending the request, waiting for a response from the node(s), and any necessary reconnection or retry attempts. If a pending request exceeds the specified timeout, it will trigger a timeout error. If no timeout value is explicitly set, a default value will be employed. | 250 milliseconds |
| Reconnect Strategy | The reconnection strategy defines how and when reconnection attempts are made in the event of connection failures. | Exponential backoff |
Setting Request Timeout for Long-Running Commands
Section titled “Setting Request Timeout for Long-Running Commands”from glide import ( GlideClusterClient, GlideClusterClientConfiguration, NodeAddress)
addresses = [NodeAddress(host="address.example.com", port=6379)]client_config = GlideClusterClientConfiguration(addresses, request_timeout=500)
client = await GlideClusterClient.create(client_config)import glide.api.GlideClusterClient;import glide.api.models.configuration.GlideClusterClientConfiguration;import glide.api.models.configuration.NodeAddress;
GlideClusterClientConfiguration config = GlideClusterClientConfiguration.builder() .address(NodeAddress.builder() .host("address.example.com") .port(6379).build()) .requestTimeout(500) .build();
GlideClusterClient client = GlideClusterClient.createClient(config).get();import {GlideClusterClient} from "@valkey/valkey-glide";
const addresses = [ { host: "address.example.com", port: 6379 }];
const client = await GlideClusterClient.createClient({ addresses: addresses, requestTimeout: 500});import ( glide "github.com/valkey-io/valkey-glide/go/v2" "github.com/valkey-io/valkey-glide/go/v2/config")
func ConnectClusterWithTimeout() { myConfig := config.NewClusterClientConfiguration(). WithAddress(&config.NodeAddress{Host: "address.example.com", Port: 6379}). WithRequestTimeout(500)
client, err := glide.NewClusterClient(myConfig)}$addresses = [ ['host' => 'address.example.com', 'port' => 6379]];
$client = new ValkeyGlideCluster( addresses: $addresses, request_timeout: 500);using Valkey.Glide;using static Valkey.Glide.ConnectionConfiguration;
var config = new ClusterClientConfigurationBuilder() .WithAddress("address.example.com", 6379) .WithRequestTimeout(TimeSpan.FromMilliseconds(500)) .Build();
await using var client = await GlideClusterClient.CreateClient(config);Configuring Reconnect Strategy
Section titled “Configuring Reconnect Strategy”from glide import ( GlideClusterClient, GlideClusterClientConfiguration, NodeAddress, BackoffStrategy)
addresses = [NodeAddress(host="address.example.com", port=6379)]client_config = GlideClusterClientConfiguration( addresses, reconnect_strategy=BackoffStrategy(num_of_retries=3, factor=2, exponent_base=2))
client = await GlideClusterClient.create(client_config)import glide.api.GlideClusterClient;import glide.api.models.configuration.BackoffStrategy;import glide.api.models.configuration.GlideClusterClientConfiguration;import glide.api.models.configuration.NodeAddress;
GlideClusterClientConfiguration config = GlideClusterClientConfiguration.builder() .address(NodeAddress.builder() .host("address.example.com") .port(6379).build()) .reconnectStrategy(BackoffStrategy.builder() .numOfRetries(3) .factor(2) .exponentBase(2) .build()) .build();
GlideClusterClient client = GlideClusterClient.createClient(config).get();import {GlideClusterClient} from "@valkey/valkey-glide";
const addresses = [ { host: "address.example.com", port: 6379 }];
const client = await GlideClusterClient.createClient({ addresses: addresses, reconnectStrategy: { numOfRetries: 3, factor: 2, exponentBase: 2 }});import ( glide "github.com/valkey-io/valkey-glide/go/v2" "github.com/valkey-io/valkey-glide/go/v2/config")
func ConnectClusterWithReconnectStrategy() { myConfig := config.NewClusterClientConfiguration(). WithAddress(&config.NodeAddress{Host: "address.example.com", Port: 6379}). WithReconnectStrategy(config.BackoffStrategy{ NumOfRetries: 3, Factor: 2, ExponentBase: 2, })
client, err := glide.NewClusterClient(myConfig)}$addresses = [ ['host' => 'address.example.com', 'port' => 6379]];
$reconnect_strategy = [ 'num_of_retries' => 3, 'factor' => 2, 'exponent_base' => 2];
$client = new ValkeyGlideCluster( addresses: $addresses, reconnect_strategy: $reconnect_strategy);using Valkey.Glide;using static Valkey.Glide.ConnectionConfiguration;
var config = new StandaloneClientConfigurationBuilder() .WithAddress("address.example.com", 6379) .WithConnectionRetryStrategy( numberOfRetries: 3, factor: 2, exponentBase: 2) .Build();
await using var client = await GlideClient.CreateClient(config);