2011-05-12 39 views
5
  • 我打算將Redis(ServiceStack)用作Web應用程序的整個數據庫。
  • 我可以在7.4秒內插入76000條記錄。
  • 但使用單一連接(RedisClient對象壽命時的應用程序),
  • 我用一套通用的方法不存儲(巨大的性能差異)

我用了每個請求的對象壽命時爲實體框架ObjectContext。Redis在Web應用程序中的最佳對象生存期策略是什麼

那麼,什麼是在Redis的(ServiceStack)Web應用程序(Asp.Net MVC)對象壽命時,最好的策略..

還是Redis的不是100代的SQL Server表成熟的項目(與對方在各種各樣)

我完全困惑..我想在DB4O中存儲實體(我很害怕'DB4o是Embedded-Java Db'的口號也),在Redis的關係?

並支持EF4包含概念。

我的總項目將有1000萬個實體,100.000.000個關係! (我有3年實體框架1-4的經驗)

回答

3

的ServiceStack Redis的客戶包括2個線程安全的連接管理器:

  • PooledRedisClientManager - 是連接池的實現,其中RedisClient的彙集。建議遠程訪問Redis服務器。

  • BasicRedisClientManager - 每次都返回一個新的RedisClient實例,建議如果redis服務器與ASP.NET Web應用程序位於同一服務器上。

注意Redis的是不是一個RDBMS,這是一個數據結構服務器提供對服務器端的關鍵值,集合,有序集合,哈希和列表原子訪問。您需要使用自定義索引來維護您自己的關係,您可以在RedisStackOverflow演示應用程序的source code中看到此示例。

您還應該檢查出Designing a simple blog application with Redis

否則,ServiceStack C# RedisClient wiki是關於使用C#Redis客戶端的最佳文檔。

4

你不想在一切中使用單個redis客戶端對象 - 如果你一次加載多個頁面,那麼會產生真正有趣的結果。如果創建連接的開銷是個問題,則可以使用某種連接池,但可能不是必需的。

存儲和相關方法是ServiceStack的一部分,它旨在通過存儲類型信息和實際數據來簡化某些簡單場景 - 如果這不是您需要的,請不要使用它。

Redis可以很好地支持這種大小的數據集,但請記住它絕不是關係數據庫 - 所有東西都將與您在SQL中使用的模式完全不同,並且像EF這樣的抽象層不會幫幫我。您需要真正瞭解您的數據,您需要如何處理這些數據,以及所需任務如何映射到redis可以非常快速地執行的低級操作。

相關問題