pub struct MemoryCache { /* private fields */ }Expand description
In-memory cache with TTL support
This cache stores values in memory using a HashMap with optional
time-to-live (TTL) for entries. It’s suitable for single-process
applications or as a fallback cache.
§Example
ⓘ
use allframe_core::cache::{Cache, MemoryCache, CacheConfig};
use std::time::Duration;
let cache = MemoryCache::with_config(
CacheConfig::new()
.prefix("myapp")
.default_ttl(Duration::from_secs(300))
);
cache.set("key", &"value", None).await;
let value: Option<String> = cache.get("key").await;Implementations§
Source§impl MemoryCache
impl MemoryCache
Sourcepub fn with_config(config: CacheConfig) -> Self
pub fn with_config(config: CacheConfig) -> Self
Create a new memory cache with custom configuration
Sourcepub fn cleanup_expired(&self)
pub fn cleanup_expired(&self)
Remove expired entries from the cache
This is called automatically on get operations, but can be called manually if needed.
Trait Implementations§
Source§impl Cache for MemoryCache
impl Cache for MemoryCache
Source§fn get<T: DeserializeOwned + Send>(
&self,
key: &str,
) -> Pin<Box<dyn Future<Output = Option<T>> + Send + '_>>
fn get<T: DeserializeOwned + Send>( &self, key: &str, ) -> Pin<Box<dyn Future<Output = Option<T>> + Send + '_>>
Get a value from the cache Read more
Source§fn set<T: Serialize + Send + Sync>(
&self,
key: &str,
value: &T,
ttl: Option<Duration>,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>>
fn set<T: Serialize + Send + Sync>( &self, key: &str, value: &T, ttl: Option<Duration>, ) -> Pin<Box<dyn Future<Output = ()> + Send + '_>>
Set a value in the cache with an optional TTL Read more
Source§fn delete(&self, key: &str) -> Pin<Box<dyn Future<Output = bool> + Send + '_>>
fn delete(&self, key: &str) -> Pin<Box<dyn Future<Output = bool> + Send + '_>>
Delete a value from the cache Read more
Source§fn exists(&self, key: &str) -> Pin<Box<dyn Future<Output = bool> + Send + '_>>
fn exists(&self, key: &str) -> Pin<Box<dyn Future<Output = bool> + Send + '_>>
Check if a key exists in the cache
Source§fn clear(&self) -> Pin<Box<dyn Future<Output = ()> + Send + '_>>
fn clear(&self) -> Pin<Box<dyn Future<Output = ()> + Send + '_>>
Clear all entries from the cache
Source§fn len(&self) -> Pin<Box<dyn Future<Output = Option<usize>> + Send + '_>>
fn len(&self) -> Pin<Box<dyn Future<Output = Option<usize>> + Send + '_>>
Get the number of entries in the cache (if supported) Read more
Source§fn get_many<T: DeserializeOwned + Send>(
&self,
keys: &[&str],
) -> Pin<Box<dyn Future<Output = Vec<Option<T>>> + Send + '_>>
fn get_many<T: DeserializeOwned + Send>( &self, keys: &[&str], ) -> Pin<Box<dyn Future<Output = Vec<Option<T>>> + Send + '_>>
Get multiple values from the cache Read more
Source§fn set_many<'a, T: Serialize + Send + Sync + 'a>(
&'a self,
entries: Vec<(String, T)>,
ttl: Option<Duration>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'a>>
fn set_many<'a, T: Serialize + Send + Sync + 'a>( &'a self, entries: Vec<(String, T)>, ttl: Option<Duration>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'a>>
Set multiple values in the cache Read more
Auto Trait Implementations§
impl !Freeze for MemoryCache
impl RefUnwindSafe for MemoryCache
impl Send for MemoryCache
impl Sync for MemoryCache
impl Unpin for MemoryCache
impl UnwindSafe for MemoryCache
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<C> CacheExt for C
impl<C> CacheExt for C
Source§fn get_keyed<K: CacheKey, T: DeserializeOwned + Send>(
&self,
key: &K,
) -> Pin<Box<dyn Future<Output = Option<T>> + Send + '_>>
fn get_keyed<K: CacheKey, T: DeserializeOwned + Send>( &self, key: &K, ) -> Pin<Box<dyn Future<Output = Option<T>> + Send + '_>>
Get a value using a typed cache key