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