Entity framework 4 在web应用程序中,Redis的最佳对象生存期策略是什么 我将计划使用Redis(ServiceStack)作为web应用程序的整个数据库 我可以在7.4秒内插入76000条记录 但是使用单连接(RedisClient对象生命周期是应用程序) 我使用了Set泛型方法not Store(巨大的性能差异)

Entity framework 4 在web应用程序中,Redis的最佳对象生存期策略是什么 我将计划使用Redis(ServiceStack)作为web应用程序的整个数据库 我可以在7.4秒内插入76000条记录 但是使用单连接(RedisClient对象生命周期是应用程序) 我使用了Set泛型方法not Store(巨大的性能差异),entity-framework-4,benchmarking,redis,db4o,object-lifetime,Entity Framework 4,Benchmarking,Redis,Db4o,Object Lifetime,我对实体框架ObjectContext使用了每个请求对象的生存时间 那么,针对Redis(ServiceStack)的web应用程序(Asp.Net MVC)中对象生命周期的最佳策略是什么 或者Redis不是100个Sql Server表的成熟项目(以各种方式相互关联) 我完全糊涂了。。我正在考虑将实体存储在DB4O中(我害怕“DB4O也是嵌入式javadb”的口号),关系存储在Redis中 并支持在EF4中包含概念 我的总项目将有1.000.000个实体,10.000.000个关系!(我有3年

我对实体框架ObjectContext使用了每个请求对象的生存时间

那么,针对Redis(ServiceStack)的web应用程序(Asp.Net MVC)中对象生命周期的最佳策略是什么

或者Redis不是100个Sql Server表的成熟项目(以各种方式相互关联)

我完全糊涂了。。我正在考虑将实体存储在DB4O中(我害怕“DB4O也是嵌入式javadb”的口号),关系存储在Redis中

并支持在EF4中包含概念


我的总项目将有1.000.000个实体,10.000.000个关系!(我有3年Entity Framework 1-4的经验)

你不想在任何事情上都使用一个redis客户端对象-如果你一次加载多个页面,这会产生非常有趣的结果。如果创建连接的开销是一个问题,您可以使用某种连接池,但这可能不是必需的

Store和相关方法是ServiceStack的一部分,旨在通过存储类型信息以及实际数据来简化某些简单场景-如果这不是您需要的,请不要使用它


Redis可以很好地支持这种大小的数据集,但请记住,它绝不是一个关系数据库——所有东西的建模方式都将与您在SQL中使用的方式完全不同,像EF这样的抽象层也不会有帮助。您需要真正了解您的数据,需要对其执行什么操作,以及所需的任务如何映射到redis可以快速执行的低级操作。

ServiceStack redis客户端包括两个线程安全连接管理器:

  • PooledRedisClientManager-是连接池实现,RedisClient在其中进行池化。远程访问redis服务器时建议使用

  • BasicRedisClientManager每次都返回一个新的RedisClient实例,如果redis server与ASP.NET web应用程序位于同一服务器上,则建议这样做

注意Redis不是一个RDBMS,它是一个数据结构服务器,提供对服务器端键值、集合、排序集合、散列和列表的原子访问。您需要使用自定义索引维护自己的关系,您可以在演示应用程序的中看到这方面的示例

你也应该退房

否则,对于如何使用C#Redis客户机的文档来说,这里是最好的地方