我正在尝试实现一些将第三方Web服务中的数据缓存到sql server数据库的功能。
我有几种方法,比如
IProduct GetProductById(int productId)
,IEnumerable<IProduct> ListProductsAllByCategoryId(int categoryId)
,IEnumerable<IProduct> ListProductsPagedByCategoryId(int categoryId, int pageNumber, int itemsOnPage, out int totalRowCount)
,所以,我有一个想法,将代码/哈希方法签名+参数作为一个键,并将输出序列化为一个值,并将该键值对存储在数据库中。
然后我计划只是按键从数据库中获取这些项目。
问题:对于(方法+参数)的每个组合,如何实现唯一键是好主意吗?
任何其他解决方案对我都有用。
答案 0 :(得分:2)
我不太确定你的要求,所以我假设你只想缓存你的对象......
我在缓存时使用的方法是为每个类类型设置一个静态guid(保持类型唯一),然后我追加“ - ”和对象的id(无论如何都应该是唯一的)。
作为数据库的替代方案,您考虑过使用memcached吗? - 有.Net版本,它们非常好,只需确保您了解正确的位置和缓存内容,以确保它适用于您的场景。