KeyExpire<T>、KeyExpireAsync<T>: 设置缓存Key的生命周期- Remove、- RemoveAsync: 将指定的缓存Key (缓存Key集合) 从缓存中移除
- Refresh、- RefreshAsync: 刷新指定的缓存Key (缓存Key集合) 的生命周期- 适用于未被删除、绝对过期时间没有到,但相对过期时间快到的缓存
 
- Exists、- ExistsAsync: 如果在缓存中找到 , 则返回true,否则返回false
- GetKeys、- GetKeysAsync: 根据key pattern 得到符合规则的所有缓存Key- 例: 传入User* , 可得到缓存中以User开头的所有缓存Key
 
- KeyExpire、- KeyExpireAsync: 设置缓存Key的生命周期
- 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集合) 的生命周期- 适用于未被删除、绝对过期时间没有到,但相对过期时间快到的缓存 (延长滑动过期时间)
 
- Create: 返回指定Name的分布式缓存客户端
- Create: 返回指定Name的多级缓存客户端
如果Name为空字符串时,可直接使用总结IDistributedCacheClient或IMultilevelCacheClient, 默认注册不指定Name时,则其Name为空字符串 , 可不通过Factory创建
Masa Framework提供了分布式缓存以及多级缓存的实现,其中有几个优秀的功能:- 多级缓存提供了缓存更新后同步更新内存缓存功能
 - 当我们的服务是多副本时,不必担心会缓存更新后其它副本由于内存缓存未过期,导致获取到过期的缓存数据,大大提升我们的用户体验
 
- 支持滑动过期以及绝对过期混合使用- 避免无用的缓存长时间被持久化,但对于热点数据又可以避免打到Redis或者数据库
 
- 配置支持热更新 , 配置更新后同步生效,无需重启项目
- 缓存Key支持格式化,可根据当前缓存值类型与传入缓存Key结合形成新的缓存Key,提高了开发效率以及代码可读性- 比如获取用户id为1的数据 , 可通过Client.Get<User>("1"),而无需:Client.Get<User>("User.1")
 
- 比如获取用户id为1的数据 , 可通过
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,欢迎联系我们

文章插图
推荐阅读
- 【番外篇】Rust环境搭建+基础开发入门+Rust与.NET6、C++的基础运算性能比较
- disco diffusionAI绘画保姆级入门教程
- 一 JPA入门学习集合springboot
- 原神室内派考古入门任务怎么做
- 七 SpringBoot - Redis 缓存
- Flink WordCount入门
- 一篇文章带你了解网页框架——Vue简单入门
- 绝地求生新手如何快速入门(绝地求生新手入门教学怎么跳过)
- 【C++】spdlog光速入门,C++logger最简单最快的库
- 小白转行入门STM32----手机蓝牙控制STM32单片机点亮LED

 
   
   
   
   
   
   
   
   
   
  