未配置内存缓存时,默认内存缓存永久有效除了上述两种方式以外,多级缓存的内存缓存配置也同样支持选项模式,我们可以通过Dcc或者利用
builder.Services.Configure<MultilevelCacheOptions>(builder.Configuration)
来支持选项模式修改缓存Key映射规则源码解读IDistributedCacheClient (分布式缓存客户端)
IDistributedCacheClient
接口提供以下方法来处理分布式缓存以下方法会根据全局缓存Key的规则配置以及传入缓存Key的规则配置,检测是否需要格式化缓存Key,对需要格式化Key的操作按照缓存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集合) 的生命周期- 适用于未被删除、绝对过期时间没有到,但相对过期时间快到的缓存 (延长滑动过期时间)
Exists<T>
、ExistsAsync<T>
: 如果在缓存中找到,则返回true,否则返回falseGetKeys<T>
、GetKeysAsync<T>
: 根据key pattern 得到符合规则的所有缓存KeyGetByKeyPattern<T>
、GetByKeyPatternAsync<T>
: 根据key pattern 得到符合规则的所有缓存Key、Value集合HashIncrementAsync
: 将指定的缓存Key的值增加Value,并返回增长后的结果HashDecrementAsync
: 将指定的缓存Key的值减少Value,并返回减少后的结果- 支持设置最小的Value,避免减少后的值低于设置的最小值,执行失败则返回: -1
KeyExpire<T>
、KeyExpireAsync<T>
: 设置缓存Key的生命周期
Remove
、RemoveAsync
: 将指定的缓存Key (缓存Key集合) 从缓存中移除Refresh
、RefreshAsync
: 刷新指定的缓存Key (缓存Key集合) 的生命周期- 适用于未被删除、绝对过期时间没有到,但相对过期时间快到的缓存
Exists
、ExistsAsync
: 如果在缓存中找到,则返回true,否则返回falseGetKeys
、GetKeysAsync
: 根据key pattern 得到符合规则的所有缓存Key- 例: 传入User*,可得到缓存中以User开头的所有缓存Key
KeyExpire
、KeyExpireAsync
: 设置缓存Key的生命周期
Get<T>
、GetAsync<T>
: 根据缓存Key返回类型为T
的结果 (如果缓存不存在,则返回Null) (支持监控缓存变更)GetList<T>
、GetListAsync<T>
: 根据缓存Key集合返回对应的缓存值的集合 (针对不存在的缓存key,其值返回Null)经验总结扩展阅读
- 直播带货小白如何入门
- 【番外篇】Rust环境搭建+基础开发入门+Rust与.NET6、C++的基础运算性能比较
- disco diffusionAI绘画保姆级入门教程
- 一 JPA入门学习集合springboot
- 原神室内派考古入门任务怎么做
- 七 SpringBoot - Redis 缓存
- Flink WordCount入门
- 一篇文章带你了解网页框架——Vue简单入门
- 【C++】spdlog光速入门,C++logger最简单最快的库
- 小白转行入门STM32----手机蓝牙控制STM32单片机点亮LED