.net缓存的应用研究(读篇)
目前,缓存主要有两种技术:分布式缓存和进程级别的内容缓存。两种缓冲具体的差异就不废话了。
1.在技术上
数据库降压的最好方式就是缓存。在缓存的性能上,进程级别的内存缓存性能有明显优于分布式缓存,内存缓存性能最好,需多加利用。如果要对他们的使用排序的话,建议是:内存缓存>分布式缓存>数据库。
2.业界趋势
“数据要尽可能的贴近用户端,尽量高的从各类缓存中命中数据,而不是访问数据库”,这应该是个共识了。前端尽量通过CDN缓存抗压,后端要在各层提供各种缓存。按照这种思路,可以总结出缓存的设计原则:
静态化:数据尽量以目标展现的格式存储,而不是存储中间数据。减少数据格式化的时间消耗,用空间换时间。
专用:数据静态化后,可使用的范围有限,应尽量贴近用户的结构,降低使用后的格式化成本。
隔离:封装缓存数据的访问,把缓存的控制权掌握在自己手中。
3.缓存的使用原则
- 进程缓存
-
性能最高,优先考虑使用。
-
对数据要求苛刻,变化频率高、访问频率低的数据不能缓存。
-
建议缓存访问频率高、变化频率低的数据。
-
配合缓存的时效性策略应用。
-
- 分布式缓存
- 性能好。在内存缓存不适用的情况下,推荐使用。
- 建议作为缓存使用,而不是存储。
- 在数据变化频率很高的情况下,可作为DB的写入缓存
- 缓存同步模式:尽在进程缓存
- 增量同步:按照时间戳或者数据变化更新缓存
- 全量同步:重新拉取所有的缓存数据。不建议采用此种模式,性能差,同步的数据量大。
- 缓存同步时机
- 每次查询时同步:在做查询时,检验数据的版本,然后进行缓存同步。
- 增删改时失效:在做数据的增删改时,同步修改缓存。此种模式仅适用用分布式缓存,进程级别缓存不适用的。
- 定时同步:在缓存的驻留端定时更新缓存。此种模式适用于对数据的实时性要求不高的场景。
- 缓存时效性
- 有时效性:缓存数据存在时效性,不管数据的版本有没有变化,过期失效
- 无时效性:只要数据的时间戳保持不变,缓存数据永久有效。
weiliang 2016-10-8
分类:
.Net Dev
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?