pub struct InternalRedisStore<'a> { /* private fields */ }
Expand description
InternalRedisStore
is a store implementation that uses Redis module APIs in
that it’s designed to run from within a Redis runtime. This allows us to
cut some corners around atomicity because we can safety assume that all
operations will be atomic.
Implementations§
Source§impl<'a> InternalRedisStore<'a>
impl<'a> InternalRedisStore<'a>
pub fn new(r: &'a Redis) -> InternalRedisStore<'a>
Trait Implementations§
Source§impl<'a> Store for InternalRedisStore<'a>
impl<'a> Store for InternalRedisStore<'a>
Source§fn compare_and_swap_with_ttl(
&mut self,
key: &str,
old: i64,
new: i64,
ttl: Duration,
) -> Result<bool, CellError>
fn compare_and_swap_with_ttl( &mut self, key: &str, old: i64, new: i64, ttl: Duration, ) -> Result<bool, CellError>
Compares the value at the given key with a known old value and swaps it
for a new value if and only if they’re equal. Also sets the key’s TTL
until it expires.
Source§fn get_with_time(&self, key: &str) -> Result<(i64, Tm), CellError>
fn get_with_time(&self, key: &str) -> Result<(i64, Tm), CellError>
Gets the given key’s value and the current time as dictated by the
store (this is done so that rate limiters running on a variety of
different nodes can operate with a consistent clock instead of using
their own). If the key was unset, -1 is returned.
Auto Trait Implementations§
impl<'a> Freeze for InternalRedisStore<'a>
impl<'a> RefUnwindSafe for InternalRedisStore<'a>
impl<'a> !Send for InternalRedisStore<'a>
impl<'a> !Sync for InternalRedisStore<'a>
impl<'a> Unpin for InternalRedisStore<'a>
impl<'a> UnwindSafe for InternalRedisStore<'a>
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