5
  • Webアプリケーションのデータベース全体としてRedis(ServiceStack)を使用する予定です。
  • 7.4秒で76000レコードを挿入できます。
  • ただし、単一の接続を使用すると(RedisClientオブジェクトの寿命はアプリケーションです)、
  • StoreではなくSetジェネリックメソッドを使用しました(パフォーマンスの大きな違い)

私はEntityFrameworkObjectContextにPer-Requestobject-life-timeを使用していました。

では、Redis(ServiceStack)用のWebアプリケーション(Asp.Net MVC)でのオブジェクトの有効期間の最善の戦略は何ですか。

または、Redisは100個のSQL Serverテーブルの成熟したプロジェクトではありません(さまざまな点で相互に関連しています)

私は完全に混乱しています..私はエンティティをDB4Oに格納することを考えています(私は怖いです'DB4oは埋め込まれています-JavaDb'スローガンも)、Redisの関係?!

また、EF4でインクルードコンセプトをサポートします。

私のプロジェクト全体には、1.000.000エンティティ、100.000.000リレーションがあります。(私は3年間のEntity Framework 1-4の経験があります)

4

2 に答える 2

4

すべてに単一のredisクライアントオブジェクトを使用する必要はありません。一度に複数のページを読み込む場合は、非常に興味深い結果が得られます。接続作成のオーバーヘッドが問題になる場合は、ある種の接続プールを使用できますが、おそらく必要ではありません。

Storeおよび関連するメソッドは、タイプ情報と実際のデータを格納することにより、特定の単純なシナリオを容易にするように設計されたServiceStackの一部です。それが必要でない場合は、使用しないでください。

Redisはそのサイズのデータ​​セットを非常にうまくサポートできますが、リレーショナルデータベースではないことを忘れないでください。すべてが、SQLで慣れているものとはまったく異なる方法でモデル化され、EFのような抽象化レイヤーは役に立ちません。データ、データで何をする必要があるか、そして必要なタスクがredisが非常に高速に実行できる低レベルの操作にどのようにマッピングされるかを本当に理解する必要があります。

于 2011-05-12T13:00:43.037 に答える
3

ServiceStack Redisクライアントには、2つのスレッドセーフ接続マネージャーが含まれています。

  • PooledRedisClientManager -RedisClientがプールされる接続プールの実装です。redis-serverにリモートでアクセスする場合に推奨されます。

  • BasicRedisClientManager-毎回新しいRedisClientインスタンスを返します。これは、redis-serverがASP.NETWebアプリケーションと同じサーバー上にある場合に推奨されます。

注RedisはRDBMSではなく、サーバー側のキー値、セット、並べ替えられたセット、ハッシュ、リストへのアトミックアクセスを提供するデータ構造サーバーです。カスタムインデックスを使用して独自の関係を維持する必要があります。この例は、RedisStackOverflowデモアプリケーションのソースコードで確認できます。

また、Redisを使用した簡単なブログアプリケーションの設計も確認する必要があります。

それ以外の場合、ServiceStack C#RedisClient wikiは、C#Redisクライアントを使用するためのドキュメントを作成するのに最適な場所です。

于 2011-05-19T15:39:49.450 に答える