私はRedisが初めてで、いくつかのオブジェクトを保存するためにredisハッシュを使い始めましたが、非常に予期しないパフォーマンスの問題に遭遇しました。VMware プレーヤーでローカルにホストされている Ubuntu マシンで redis を実行しています。
私の vm は、4 GB のメモリを備えた 2 つのコアです。
私が試しているコードはこちらです。
using (var redis = new RedisClient())
{
using (var client = redis.As<MyClass>())
{
var hash = client.GetHash<Guid>("urn:class");
var items = hash.Values;
}
}
ハッシュには、エンティティ モデルから追加された約 2000 のアイテムが含まれています。ハッシュからすべての値を取得するには、私の実行中に 7 秒かかります。これは、私のインスタンスに redis が持っている小さなハードウェアであっても、かなり高いようです。同じデータに対する通常の LINQ to Entity クエリには、.25 秒かかります。
ここで私が間違っていることはありますか?これは、redis のパフォーマンスについて私が聞いたすべての素晴らしいことを考えると、間違っているように思えます。
編集: 2013 年 7 月 12 日
これは WCF の問題のようです。この投稿Redis を使用して Web サービスをスケーリングすると、基本的に私の結果が反映されます。私がテストするためにしたことはこれでした。
1683 個のオブジェクトで Redis ハッシュを取得する
- IIS の WCF サービス: 7 秒
- ASP.NET Web API: 0.8 秒
- 楽しみのための NodeJS: 0.8 秒
Web Api と Node は魔法のように動作し、redis-benchmark を実行したときとほぼ同じように動作しました。