我正在开发一个相当大的项目。有两种情况我需要处理
1. API调用的某些值,如API调用的BaseURL,从DB中获取一次,并在解决方案的多个位置(在不同的类中)重新分配。
2.某些值使用API调用,有时可能会更改,所以我需要有时调用API调用以刷新这些值,然后重新调用。
我现在的情况1的解决方案是create a staic constructor
,它从DB中取一次值并重用。这是一个好的解决方案吗?这种情况下的最佳做法是什么?我该如何处理案例2?这种“缓存”的最佳做法是什么?在大型项目中缓存值的最佳做法
1
A
回答
0
创建一个名为CachedDataAccessor
的静态类并在其中实现以下行为。
GetCachedData()
,将返回API密钥,中网址的情况下,存储第一时间就从DBRefreshCachedData()
获取的数据,以刷新过期的值,并从数据库获取它们的副本。 此后,您还可以实施CacheSize
以允许配置缓存的大小。
每一次你需要的数据时,从CacheAccessor
0
把它拿来看一看the classes in system.runtime.cahching
对于这两种情况下,你可以使用的MemoryCache对象。
在第一种情况下,您可以将CacheItemPolicy的SlidingExpiration设置为一个小时左右,所以当它被命中时它不会从缓存中删除。
在第二种情况下,如果您想缓存数据一段时间,您可以将AbsoluteExpiration设置为该时间。
如果您知道何时需要清除缓存的条件,则可以创建一个更改监视器,用于在缓存中的数据无效时清除缓存项。
相关问题
- 1. 将媒体文件存储在大型Web项目中的最佳做法
- 2. 单个大型SVN项目的最佳做法
- 3. ASP.NET缓存,什么是最佳做法
- 4. 将对象保存在缓存中的最佳做法
- 5. 从列表框中查找大量项目的最佳做法
- 6. 缓存的最佳做法。避免多余的缓存?
- 7. 在大型C++项目中处理配置的最佳方法
- 8. 尝试编辑不存在的项目的最佳做法?
- 9. 参考项目的最佳做法
- 10. 在Rails应用中缓存Facebook朋友的最佳做法?
- 11. 在Android中缓存文件时的最佳做法
- 12. 组织大型ASP.NET MVC2项目中文件的最佳方法?
- 13. 在iOS中清除缓存目录的最佳做法是什么?
- 14. Laravel中的大型模型的最佳做法
- 15. 为项目储存宝石的最佳做法是什么?
- 16. 什么是在Android项目中创建包的最佳做法
- 17. 在.net中引用类库项目设置的最佳做法
- 18. 在html.erb文件中显示localStorage项目的最佳做法
- 19. 在一个项目中的最佳做法webapi /网站
- 20. 在Android上缓存图像的最佳做法是什么?
- 21. Redis中缓存的最佳expire_in值
- 22. Doxygen在大型多应用COM项目中的最佳设置
- 23. 在另一个项目中使用一个mercurial项目的最佳做法
- 24. 大型项目中进程间通信的最佳和最简单的方法
- 25. 使用Unity3d在Firebase中存储DateTime值的最佳做法
- 26. 自己做一个小项目的最佳做法
- 27. 最佳做法在新的web项目上的JavaScript配置
- 28. 存储大型数值多维数组的最佳方法
- 29. 实现基于文件的缓存的最佳做法
- 30. Java - 做大型GUI项目