Class RedisStoreBuilder<T>
A builder for configuring the Redis-based persistent data store.
Inheritance
Implements
Namespace: LaunchDarkly.Sdk.Server.Integrations
Assembly: LaunchDarkly.ServerSdk.Redis.dll
Syntax
public abstract class RedisStoreBuilder<T> : Object, IComponentConfigurer<T>, IDiagnosticDescription
Type Parameters
Name | Description |
---|---|
T |
Remarks
This can be used either for the main data store that holds feature flag data, or for the big segment store, or both. If you are using both, they do not have to have the same parameters. For instance, in this example the main data store uses a Redis host called "host1" and the big segment store uses a Redis host called "host2":
var config = Configuration.Builder("sdk-key")
.DataStore(
Components.PersistentDataStore(
Redis.DataStore().Uri("redis://host1:6379")
)
)
.BigSegments(
Components.BigSegments(
Redis.DataStore().Uri("redis://host2:6379")
)
)
.Build();
Note that the builder is passed to one of two methods, LaunchDarkly.Sdk.Server.Components.PersistentDataStore(LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer{LaunchDarkly.Sdk.Server.Subsystems.IPersistentDataStore}) or LaunchDarkly.Sdk.Server.Components.BigSegments(LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer{LaunchDarkly.Sdk.Server.Subsystems.IBigSegmentStore}), depending on the context in which it is being used. This is because each of those contexts has its own additional configuration options that are unrelated to the Redis options.
Builder calls can be chained, for example:
var config = Configuration.Builder("sdk-key")
.DataStore(
Components.PersistentDataStore(
Redis.DataStore()
.Uri("redis://my-redis-host")
.Database(1)
)
.CacheSeconds(15)
)
.Build();
Methods
Build(LdClientContext)
Declaration
public abstract T Build(LdClientContext context)
Parameters
Type | Name | Description |
---|---|---|
LaunchDarkly.Sdk.Server.Subsystems.LdClientContext | context |
Returns
Type | Description |
---|---|
T |
ConnectTimeout(TimeSpan)
Specifies the maximum time to wait for a connection to the Redis server.
Declaration
public RedisStoreBuilder<T> ConnectTimeout(TimeSpan timeout)
Parameters
Type | Name | Description |
---|---|---|
System.TimeSpan | timeout | the timeout interval |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
DatabaseIndex(Int32)
Specifies which database to use within the Redis server. The default is 0.
Declaration
public RedisStoreBuilder<T> DatabaseIndex(int database)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | database | index of the database to use |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
DescribeConfiguration(LdClientContext)
Declaration
public LdValue DescribeConfiguration(LdClientContext context)
Parameters
Type | Name | Description |
---|---|---|
LaunchDarkly.Sdk.Server.Subsystems.LdClientContext | context |
Returns
Type | Description |
---|---|
LaunchDarkly.Sdk.LdValue |
EndPoint(EndPoint)
Specifies a single Redis server as an EndPoint.
Declaration
public RedisStoreBuilder<T> EndPoint(EndPoint endPoint)
Parameters
Type | Name | Description |
---|---|---|
System.Net.EndPoint | endPoint | location of the Redis server |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
EndPoints(IList<EndPoint>)
Specifies multiple Redis servers as a list of EndPoints.
Declaration
public RedisStoreBuilder<T> EndPoints(IList<EndPoint> endPoints)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IList<System.Net.EndPoint> | endPoints | locations of the Redis servers |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
HostAndPort(String, Int32)
Specifies a single Redis server by hostname and port.
Declaration
public RedisStoreBuilder<T> HostAndPort(string host, int port)
Parameters
Type | Name | Description |
---|---|---|
System.String | host | hostname of the Redis server |
System.Int32 | port | port of the Redis server |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
OperationTimeout(TimeSpan)
Specifies the maximum time to wait for each synchronous Redis operation to complete. If you are seeing timeout errors - which could result from either an overburdened Redis server, or an unusually large operation such as storing a very large feature flag - you may want to increase this setting.
Declaration
public RedisStoreBuilder<T> OperationTimeout(TimeSpan timeout)
Parameters
Type | Name | Description |
---|---|---|
System.TimeSpan | timeout | the timeout interval |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
Prefix(String)
Specifies the namespace prefix for all keys stored in Redis.
Declaration
public RedisStoreBuilder<T> Prefix(string prefix)
Parameters
Type | Name | Description |
---|---|---|
System.String | prefix | the namespace prefix, or null to use DefaultPrefix |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
RedisConfigChanges(Action<ConfigurationOptions>)
Allows you to modify any of the configuration options supported by StackExchange.Redis directly. The current configuration will be passed to your Action, which can modify it in any way.
Declaration
public RedisStoreBuilder<T> RedisConfigChanges(Action<ConfigurationOptions> modifyConfig)
Parameters
Type | Name | Description |
---|---|---|
System.Action<StackExchange.Redis.ConfigurationOptions> | modifyConfig |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> |
Examples
Redis.DataStore()
.RedisConfigChanges((config) => {
config.Ssl = true;
})
RedisConfiguration(ConfigurationOptions)
Specifies all Redis configuration options at once.
Declaration
public RedisStoreBuilder<T> RedisConfiguration(ConfigurationOptions config)
Parameters
Type | Name | Description |
---|---|---|
StackExchange.Redis.ConfigurationOptions | config | a StackExchange.Redis.ConfigurationOptions instance |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
Uri(String)
Shortcut for calling Uri(Uri) with a string.
Declaration
public RedisStoreBuilder<T> Uri(string uri)
Parameters
Type | Name | Description |
---|---|---|
System.String | uri | the Redis server URI as a string |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |
See Also
Uri(Uri)
Specifies a Redis server - and, optionally, other properties including credentials and database number - using a URI.
Declaration
public RedisStoreBuilder<T> Uri(Uri uri)
Parameters
Type | Name | Description |
---|---|---|
System.Uri | uri | the Redis server URI |
Returns
Type | Description |
---|---|
RedisStoreBuilder<T> | the builder |