如何实现第三方Web服务的数据缓存?

时间:2010-11-11 10:29:36

标签: c# .net sql-server

我正在尝试实现一些将第三方Web服务中的数据缓存到sql server数据库的功能。

我有几种方法,比如

  1. IProduct GetProductById(int productId)
  2. IEnumerable<IProduct> ListProductsAllByCategoryId(int categoryId)
  3. IEnumerable<IProduct> ListProductsPagedByCategoryId(int categoryId, int pageNumber, int itemsOnPage, out int totalRowCount)
  4. 所以,我有一个想法,将代码/哈希方法签名+参数作为一个键,并将输出序列化为一个值,并将该键值对存储在数据库中。

    然后我计划只是按键从数据库中获取这些项目。

    问题:对于(方法+参数)的每个组合,如何实现唯一键是好主意吗?

    任何其他解决方案对我都有用。

1 个答案:

答案 0 :(得分:2)

我不太确定你的要求,所以我假设你只想缓存你的对象......

我在缓存时使用的方法是为每个类类型设置一个静态guid(保持类型唯一),然后我追加“ - ”和对象的id(无论如何都应该是唯一的)。

作为数据库的替代方案,您考虑过使用memcached吗? - 有.Net版本,它们非常好,只需确保您了解正确的位置和缓存内容,以确保它适用于您的场景。