entity-framework-4 - Web 应用程序中 Redis 的最佳对象生命周期策略是什么

标签 entity-framework-4 benchmarking redis db4o object-lifetime

  • 我计划使用 Redis (ServiceStack) 作为 Web 应用程序的整个数据库。
  • 我可以在 7.4 秒内插入 76000 条记录。
  • 但是使用单连接(RedisClient object-life-time is Application),
  • 我使用的是 Set 泛型方法而不是 Store(巨大的性能差异)

我为 Entity Framework ObjectContext 使用了 Per-Request object-life-time。

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

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

我完全糊涂了..我正在考虑将实体存储在 DB4O 中(我也很害怕“DB4o 是嵌入式 Java Db”的口号),关系存储在 Redis 中?!

并在 EF4 中支持 Include Concept。

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

最佳答案

您不希望对所有内容都使用单个 redis 客户端对象 - 如果您同时加载多个页面,这会产生非常有趣的结果。如果创建连接的开销是个问题,您可以使用某种连接池,但这可能不是必需的。

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

Redis 可以很好地支持这种大小的数据集,但请记住,它绝不是关系数据库 - 所有内容的建模方式都将与您在 SQL 中习惯的方式完全不同,像 EF 这样的抽象层也无济于事.您需要真正了解您的数据、您需要用它做什么,以及所需的任务如何映射到 Redis 可以非常快速地执行的低级操作。

关于entity-framework-4 - Web 应用程序中 Redis 的最佳对象生命周期策略是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5977869/

相关文章:

amazon-web-services - AWS ElastiCache redis 操作需要超过 10 毫秒

c# - 如何在 SQL 事件探查器中查看 SQL 查询?

linq - EF中如何比较区分大小写的字符串?

c# - 如何使用 Rhino 模拟 stub SingleOrDefault

javascript - MongoDB:如何确保 Javascript 正在等待进程?

javascript - SunSpider JavaScript 基准运行的单独测试是什么?

heroku - 在 Heroku 上使用 kue-scheduler 和 ParseServer

entity-framework - 如何覆盖 MigratorScriptingDecorator 生成的 SQL 脚本

c++ - 奇怪的基准测试结果

redis - Kubernetes - 无法从同一集群上的另一个 pod 连接到 redis pod