pub struct RedisStateBackend { /* private fields */ }Expand description
Redis state backend with connection pooling and advanced features
Implementations§
Source§impl RedisStateBackend
impl RedisStateBackend
Sourcepub async fn new(config: RedisConfig) -> StateResult<Self>
pub async fn new(config: RedisConfig) -> StateResult<Self>
Sourcepub async fn stats(&self) -> RedisStats
pub async fn stats(&self) -> RedisStats
Get current statistics
Sourcepub async fn health_check(&self) -> StateResult<bool>
pub async fn health_check(&self) -> StateResult<bool>
Check connection health
Sourcepub async fn server_info(&self) -> StateResult<String>
pub async fn server_info(&self) -> StateResult<String>
Get Redis server info
Sourcepub async fn put_with_ttl(
&self,
key: &[u8],
value: &[u8],
ttl: Duration,
) -> StateResult<()>
pub async fn put_with_ttl( &self, key: &[u8], value: &[u8], ttl: Duration, ) -> StateResult<()>
Put with custom TTL
Sourcepub async fn batch_get(
&self,
keys: &[&[u8]],
) -> StateResult<Vec<Option<Vec<u8>>>>
pub async fn batch_get( &self, keys: &[&[u8]], ) -> StateResult<Vec<Option<Vec<u8>>>>
Batch get multiple keys
Sourcepub async fn batch_put(&self, pairs: &[(&[u8], &[u8])]) -> StateResult<()>
pub async fn batch_put(&self, pairs: &[(&[u8], &[u8])]) -> StateResult<()>
Batch put multiple key-value pairs
Sourcepub async fn batch_delete(&self, keys: &[&[u8]]) -> StateResult<usize>
pub async fn batch_delete(&self, keys: &[&[u8]]) -> StateResult<usize>
Batch delete multiple keys
Sourcepub async fn get_and_delete(&self, key: &[u8]) -> StateResult<Option<Vec<u8>>>
pub async fn get_and_delete(&self, key: &[u8]) -> StateResult<Option<Vec<u8>>>
Atomic get and delete operation
Sourcepub async fn set_if_not_exists(
&self,
key: &[u8],
value: &[u8],
ttl: Duration,
) -> StateResult<bool>
pub async fn set_if_not_exists( &self, key: &[u8], value: &[u8], ttl: Duration, ) -> StateResult<bool>
Set key only if it doesn’t exist (with TTL)
Sourcepub async fn ttl(&self, key: &[u8]) -> StateResult<Option<Duration>>
pub async fn ttl(&self, key: &[u8]) -> StateResult<Option<Duration>>
Get remaining TTL for a key
Sourcepub async fn checkpoint(&self) -> StateResult<Vec<(Vec<u8>, Vec<u8>)>>
pub async fn checkpoint(&self) -> StateResult<Vec<(Vec<u8>, Vec<u8>)>>
Create a checkpoint (snapshot) of all state
Sourcepub async fn restore(
&self,
checkpoint: Vec<(Vec<u8>, Vec<u8>)>,
) -> StateResult<()>
pub async fn restore( &self, checkpoint: Vec<(Vec<u8>, Vec<u8>)>, ) -> StateResult<()>
Restore state from a checkpoint
Sourcepub async fn memory_usage(&self) -> StateResult<u64>
pub async fn memory_usage(&self) -> StateResult<u64>
Get memory usage statistics from Redis
Trait Implementations§
Source§impl StateBackend for RedisStateBackend
impl StateBackend for RedisStateBackend
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = StateResult<Option<Vec<u8>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = StateResult<Option<Vec<u8>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve a value for the given key Read more
Source§fn put<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
key: &'life1 [u8],
value: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = StateResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
key: &'life1 [u8],
value: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = StateResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Store a value for the given key Read more
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = StateResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = StateResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete a key and its associated value Read more
Source§fn list_keys<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = StateResult<Vec<Vec<u8>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_keys<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = StateResult<Vec<Vec<u8>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List all keys with the given prefix Read more
Source§fn clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = StateResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = StateResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Clear all state from the backend Read more
Auto Trait Implementations§
impl !RefUnwindSafe for RedisStateBackend
impl !UnwindSafe for RedisStateBackend
impl Freeze for RedisStateBackend
impl Send for RedisStateBackend
impl Sync for RedisStateBackend
impl Unpin for RedisStateBackend
impl UnsafeUnpin for RedisStateBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.