未配置内存缓存时,默认内存缓存永久有效除了上述两种方式以外,多级缓存的内存缓存配置也同样支持选项模式,我们可以通过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
