Skip to main content

read_through

Function read_through 

Source
pub fn read_through<F>(
    cache: &dyn Cache,
    key: &str,
    ttl: Option<Duration>,
    loader: F,
) -> Result<Option<Vec<u8>>, CacheError>
where F: FnOnce() -> Result<Option<Vec<u8>>, CacheError>,
Expand description

Read-through(同步版):缓存未命中时通过 loader 回源加载,写入缓存后返回

§参数

  • cache:缓存实例
  • key:缓存键
  • ttl:写入缓存时的 TTL(None 表示永不过期)
  • loader:回源加载闭包,返回 Ok(None) 表示数据源也无此键

§返回

  • Ok(Some(v)):命中缓存或回源加载成功
  • Ok(None):缓存与数据源均无此键
  • Err(_):缓存或加载过程出错