分布式缓存在高事务应用程序的开发人员中变得非常流行,因为它提高了应用程序的性能和可伸缩性。 而且,这种流行意味着开发人员正在缓存越来越多的数据,他们也希望能够像搜索关系数据库一样搜索这些数据。
但是,许多分布式缓存的一个主要限制是它们只向您提供 (key, value) Hashtable 接口。 这意味着要获取任何缓存项,您必须知道它的键。 但在现实生活中,这并不总是可行的,在许多情况下,您需要根据其他搜索条件搜索数据(例如“给我来自纽约的所有客户”)。 因此,如果您无法搜索分布式缓存,您可能只会缓存您始终知道其键的数据。 而且,这可以防止您缓存大量数据,否则这些数据会真正提高应用程序的性能和可扩展性。
幸好, NCache 为您提供了一个非常强大的 类 SQL 查询能力 (称为对象查询语言或 OQL)让您可以根据对象属性而不只是键来搜索缓存。 而且,对于 .NET 应用程序, NCache 提供 LINQ 集成并允许您通过 LINQ 搜索缓存。
LINQ 是对 .NET Framework 包括语言集成的查询、设置和转换操作。 而且,它连接了对象世界和数据世界,使搜索变得非常容易和易于管理。 此外,LINQ 允许您将自己的数据存储集成到其中。
NCache 提供了一个 LINQ 插件。 因此,您现在从 .NET 应用程序发出 LINQ 查询,并在后台运行此查询针对 NCache 分布式缓存并将结果集返回给您的应用程序。 NCache 通过实现一个名为“NCacheQuery”,它进一步实现了由 IQueryable 提供的接口 .NET framework. 通过这种集成,您可以对缓存项运行 LINQ 查询。
这是 LINQ 查询的源代码示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
namespace NCacheLINQ { class Program { static void Main (string[] args) { IQueryable products = new NCacheQuery (_cache); try { var result1 = from product in products where product.ProductID > 10 select product; if (result1 != null) { foreach (Product p in result1) { Console.WriteLine ("ProductID : " + p.ProductID); } } else { Console.WriteLine ("No record found."); } } catch (Exception) { Console.WriteLine (_error); } } } } |
总之,在 LINQ 和 NCache 给 LINQ 集成 这样您就不必更改代码,您只需在应用程序中添加新的程序集引用和命名空间即可。
因此,请下载完整的 60 天试用版 NCache Enterprise 并亲自尝试一下。