MasaFramework -- 缓存入门与规则配置( 四 )

  • 支持设置最小的Value,避免减少后的值低于设置的最小值 , 执行失败则返回: -1
  • KeyExpire<T>KeyExpireAsync<T>: 设置缓存Key的生命周期
  • 以下方法不执行缓存Key格式化, 应传入缓存完整Key:
    • RemoveRemoveAsync: 将指定的缓存Key (缓存Key集合) 从缓存中移除
    • RefreshRefreshAsync: 刷新指定的缓存Key (缓存Key集合) 的生命周期
      • 适用于未被删除、绝对过期时间没有到,但相对过期时间快到的缓存
    • ExistsExistsAsync: 如果在缓存中找到 , 则返回true,否则返回false
    • GetKeysGetKeysAsync: 根据key pattern 得到符合规则的所有缓存Key
      • 例: 传入User* , 可得到缓存中以User开头的所有缓存Key
    • KeyExpireKeyExpireAsync: 设置缓存Key的生命周期
    IMultilevelCacheClient (多级缓存客户端)
    • Get<T>GetAsync<T>: 根据缓存Key返回类型为T的结果 (如果缓存不存在,则返回Null) (支持监控缓存变更)
    • GetList<T>GetListAsync<T>: 根据缓存Key集合返回对应的缓存值的集合 (针对不存在的缓存key,其值返回Null)
    • GetOrSet<T>GetOrSetAsync<T>: 如果在缓存中找到 , 则返回类型为T的结果,如果缓存未找到,则执行Setter , 并返回Setter的结果
    • Set<T>SetAsync<T>: 将指定的缓存Key以及缓存值添加到缓存
    • SetList<T>SetListAsync<T>: 将指定的缓存Key、Value集合添加缓存
    • Remove<T>RemoveAsync<T>: 将指定的缓存Key (缓存Key集合) 从缓存中移除
    • Refresh<T>RefreshAsync<T>: 刷新指定的缓存Key (缓存Key集合) 的生命周期
      • 适用于未被删除、绝对过期时间没有到,但相对过期时间快到的缓存 (延长滑动过期时间)
    IDistributedCacheClientFactory (分布式缓存工厂)
    • Create: 返回指定Name的分布式缓存客户端
    IMultilevelCacheClientFactory (多级缓存工厂)
    • Create: 返回指定Name的多级缓存客户端
    如果Name为空字符串时,可直接使用IDistributedCacheClientIMultilevelCacheClient, 默认注册不指定Name时,则其Name为空字符串 , 可不通过Factory创建
    总结Masa Framework提供了分布式缓存以及多级缓存的实现,其中有几个优秀的功能:
    • 多级缓存提供了缓存更新后同步更新内存缓存功能
      • 当我们的服务是多副本时,不必担心会缓存更新后其它副本由于内存缓存未过期,导致获取到过期的缓存数据,大大提升我们的用户体验
    • 支持滑动过期以及绝对过期混合使用
      • 避免无用的缓存长时间被持久化,但对于热点数据又可以避免打到Redis或者数据库
    • 配置支持热更新 , 配置更新后同步生效,无需重启项目
    • 缓存Key支持格式化,可根据当前缓存值类型与传入缓存Key结合形成新的缓存Key,提高了开发效率以及代码可读性
      • 比如获取用户id为1的数据 , 可通过Client.Get<User>("1"),而无需:Client.Get<User>("User.1")
    本章源码Assignment16
    https://github.com/zhenlei520/MasaFramework.Practice
    开源地址MASA.Framework:https://github.com/masastack/MASA.Framework
    MASA.EShop:https://github.com/masalabs/MASA.EShop
    MASA.Blazor:https://github.com/BlazorComponent/MASA.Blazor
    如果你对我们的 MASA Framework 感兴趣 , 无论是代码贡献、使用、提 Issue,欢迎联系我们
    MasaFramework -- 缓存入门与规则配置

    文章插图

    推荐阅读