代码之家  ›  专栏  ›  技术社区  ›  Achilles

单一数据库记录的缓存方法

  •  2
  • Achilles  · 技术社区  · 14 年前

    考虑以下数据模型:

    假设我有一个名为“superawsomedata”的表,其中每个记录映射到一个名为“superawsomedata”的对象的实例,该对象是使用表“superawsomedata”的主键检索的。我的问题是什么缓存策略最适合管理单个记录?我仍然需要能够通过它的主键请求“SuperawsomeData”记录。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Adam Houldsworth    14 年前

    好吧,给SQL足够的内存,你很可能会发现它的缓存功能。除此之外,一个基本的缓存思想将对您有效——为您的表(最好是业务对象)创建一个缓存实体,并简单地使用类似字典的东西来提供键值关联。

    然后,您所需要做的就是在一些缓存失效或寿命中工作,然后对您进行排序。缓存层通常围绕业务层,因为业务逻辑可以决定内存中的内容是否适合您,或者过时。

    不要重新发明任何东西,周围有很多缓存解决方案提供缓存基础设施:ASP.NET缓存、memcached、appfabric…

    在提高性能方面,缓存是一块小宝石,因为它所消耗的只是内存,而内存正在变成一毛钱一打的东西。但是,与任何与性能相关的东西一样,在需要它之前不要假定您需要它——即,数据库访问速度慢,网络速度慢,有数百万用户访问相同的数据,等等。

    首先分析您的代码!