考虑以下数据模型:
假设我有一个名为“SuperAwesomeData”的表,其中每个记录映射到一个名为“SuperAwesomeData”的对象实例,该对象通过使用表“SuperAwesomeData”的主键来检索。我的问题是缓存策略最适合管理个人记录?我还需要能够通过它的主键请求“SuperAwesomeData”记录。
答案 0 :(得分:3)
好吧,给SQL足够的内存,无论如何你都可能找到它的缓存内容。除此之外,一个基本的缓存理念将适合您 - 为您的表(或业务对象,最好)创建一个缓存实体,并简单地使用像字典之类的东西来提供键值关联。
然后你需要做的就是在一些缓存失效或生命周期中工作,然后对你进行排序。缓存层通常在业务层周围盘旋,因为业务逻辑可以决定内存中的内容是适合您还是陈旧。
不要重新发明任何东西,有很多缓存解决方案可以提供缓存基础架构:ASP.NET缓存,memcached,AppFabric ......
缓存在提高性能方面是一个小小的宝石,因为它所消耗的只是内存 - 它变成了一分钱一分钱。但是,就像任何与性能相关的东西一样,在你需要之前不要假设你需要它 - 即数据库访问速度慢,网络速度慢,你有数百万用户访问相同的数据等等。
首先描述您的代码!