pub struct QueryCache { /* private fields */ }Expand description
查询缓存
缓存查询结果,配合 TimestampCache 实现自动失效。
Implementations§
Source§impl QueryCache
impl QueryCache
pub fn new(max_entries: usize) -> Self
Sourcepub fn get(&self, key: &QueryCacheKey) -> Option<Vec<HashMap<String, Value>>>
pub fn get(&self, key: &QueryCacheKey) -> Option<Vec<HashMap<String, Value>>>
尝试从缓存获取查询结果
如果缓存命中且未过期,返回 Some(results)。
否则返回 None。
Sourcepub fn put(
&self,
key: QueryCacheKey,
rows: Vec<HashMap<String, Value>>,
depends_on: Vec<String>,
)
pub fn put( &self, key: QueryCacheKey, rows: Vec<HashMap<String, Value>>, depends_on: Vec<String>, )
缓存查询结果
depends_on 指定此查询依赖的表列表。
当这些表被修改时,缓存条目自动失效。
Sourcepub fn invalidate_table(&self, table: &str)
pub fn invalidate_table(&self, table: &str)
通知表被修改(使依赖该表的缓存条目失效)
Sourcepub fn invalidate_tables(&self, tables: &[&str])
pub fn invalidate_tables(&self, tables: &[&str])
批量失效
Sourcepub fn timestamps(&self) -> &TimestampCache
pub fn timestamps(&self) -> &TimestampCache
获取时间戳缓存引用
Trait Implementations§
Auto Trait Implementations§
impl Freeze for QueryCache
impl RefUnwindSafe for QueryCache
impl Send for QueryCache
impl Sync for QueryCache
impl Unpin for QueryCache
impl UnsafeUnpin for QueryCache
impl UnwindSafe for QueryCache
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 more