加速我的简单Redis .NET应用程序

时间:2013-09-03 22:21:12

标签: c# .net linq redis

我已经开始编写一个应用程序,我想用它来快速搜索我的数据。

我开始使用ServiceStack.Redis中的客户端。 (通过NuGet获得) 围绕这个我写了一个小测试应用程序来插入20k公司数据记录,现在我使用以下代码查询这个东西:

using (var companies = redisClient.As<Company>())
{
  var companiesFound = companies.GetAll().Where(x => x.CompanyName.Contains(searchString));
  dgvOutput.DataSource = companiesFound.ToList<Company>();
}

我使用的公司类看起来像这样:

public class Company
{
  public long Id { get; set; }
  public string CompanyName { get; set; }
  public string CompanyAddress { get; set; }
  public string CompanyCity { get; set; }
}

这一切都运作良好,但我不能说它很快。任何人都可以帮我做什么来让这个东西尽可能快地运行?指标?不同类型的查询?最好不要使用LINQ?

1 个答案:

答案 0 :(得分:4)

我找到了这个文档: https://github.com/ServiceStack/ServiceStack.Redis/wiki/IRedisClient 但它不是Linq提供商 我找不到让公司过滤的方法,你只能通过Id获得全部或一个。

所以我认为,一开始,你必须得到所有公司。并将其存储在应用程序缓存中,可能在应用程序的启动中

companies =  redisClient.As<Company>().GetAll();

然后您可以像之前一样使用Linq2Object过滤List:

var companiesFound = companies.Where(x => x.CompanyName.Contains(searchString));
  dgvOutput.DataSource = companiesFound;

我不确定你是否需要ToList调用。

希望有人能为您提供更好的解决方案。