pub struct RedisCacheSuggester {
    inner: Box<dyn SuggestionProvider>,
    redis_connection: ConnectionManager,
    metrics_client: StatsdClient,
    default_ttl: Duration,
    default_lock_timeout: Duration,
}
Expand description

A suggester that uses Redis to cache previous results.

Fields

inner: Box<dyn SuggestionProvider>

The suggester to query on cache-miss.

redis_connection: ConnectionManager

Connection to Redis.

metrics_client: StatsdClient

The Statsd client used to record statistics.

default_ttl: Duration

The default amount of time a cache entry is valid, unless overridden by inner.

default_lock_timeout: Duration

Default lock timeout

Implementations

Create a Redis suggestion provider from settings that wraps provider. Opens a connection to Redis.

Errors

Fails if it cannot connect to Redis.

Retrieve an item from the cache

If the item retrieved cannot be deserialized, it will be deleted. If there is no TTL for the retrieved item, one will be added to it.

Queue a command to store an entry in the cache.

This runs as a separate task, and this function returns before the operation is complete.

Errors

Returns an error if the command cannot be queued. Does not error if the command fails to run to completion.

Queue a command to delete a key from the cache.

This runs as a separate task, and this function returns before the deletion is complete.

Errors

Returns an error if the command cannot be queued. Does not error if the command fails to run to completion.

Queue a command to set the TTL of a key in the cache.

This runs as a separate task, and this function returns before the operation is complete.

Errors

Returns an error if the command cannot be queued. Does not error if the command fails to run to completion.

Trait Implementations

Reconfigure the Redis provider.

Note that the reconfiguration will not wipe out the Redis cache. It only reconfigures the inner provider and other cache settings such as default_ttl for the subsequent cache operations.

An operator-visible name for this suggestion provider.

Generate a set of cache inputs for a given query specific to this provider. Any property of the query that affects how suggestions are generated should be included. Read more

Provide suggested results for query.

Return if this provider is null and can be ignored. Providers that set this to true should be ignored in any place where suggestions are needed. Providers with this set to true likely only serve as a blank space where we may need a provider but can’t otherwise supply one. Read more

Use Self::cache_inputs to generate a single cache key. This function should not normally be overridden by provider implementations. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more