pub struct RedisStore { /* private fields */ }Expand description
Redis-backed implementation of the Store trait.
Keys are stored in the format {prefix}{namespace_joined_by_colon}:{key}.
A Redis SET at {prefix}__namespaces__ tracks all known namespace paths
for efficient list_namespaces queries.
Implementations§
Source§impl RedisStore
impl RedisStore
Sourcepub fn new(client: Client, config: RedisStoreConfig) -> Self
pub fn new(client: Client, config: RedisStoreConfig) -> Self
Create a new RedisStore with an existing Redis client and configuration.
Sourcepub fn from_url(url: &str) -> Result<Self, SynapticError>
pub fn from_url(url: &str) -> Result<Self, SynapticError>
Create a new RedisStore from a Redis URL with default configuration.
§Errors
Returns an error if the URL is invalid.
Sourcepub fn from_url_with_config(
url: &str,
config: RedisStoreConfig,
) -> Result<Self, SynapticError>
pub fn from_url_with_config( url: &str, config: RedisStoreConfig, ) -> Result<Self, SynapticError>
Create a new RedisStore from a Redis URL with custom configuration.
Trait Implementations§
Source§impl Store for RedisStore
impl Store for RedisStore
Source§fn get<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
namespace: &'life1 [&'life2 str],
key: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Item>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn get<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
namespace: &'life1 [&'life2 str],
key: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Item>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Get an item by namespace and key.
Source§fn search<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
namespace: &'life1 [&'life2 str],
query: Option<&'life3 str>,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Item>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn search<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
namespace: &'life1 [&'life2 str],
query: Option<&'life3 str>,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Item>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Search items within a namespace.
Source§fn put<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
namespace: &'life1 [&'life2 str],
key: &'life3 str,
value: Value,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn put<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
namespace: &'life1 [&'life2 str],
key: &'life3 str,
value: Value,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Put (upsert) an item.
Source§fn delete<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
namespace: &'life1 [&'life2 str],
key: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn delete<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
namespace: &'life1 [&'life2 str],
key: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Delete an item.
Source§fn list_namespaces<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
prefix: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<String>>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn list_namespaces<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
prefix: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<String>>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
List all namespaces, optionally filtered by prefix.
Auto Trait Implementations§
impl Freeze for RedisStore
impl RefUnwindSafe for RedisStore
impl Send for RedisStore
impl Sync for RedisStore
impl Unpin for RedisStore
impl UnsafeUnpin for RedisStore
impl UnwindSafe for RedisStore
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> 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 more