3

C#でRedisServicestackを使用しています。現在、私がデータを保存している方法は次のとおりです。

var listTypedRedis = db.As<MyObject>();

foreach (var obj in myObjects)
{
       listTypedRedis.AddItemToList(listTypedRedis.Lists["urn:list"], obj);
}

約6000件のレコードを保存できました。SQLよりも遅いように見えるため、レコードの取得に問題があります。

Redisを138ミリ秒、SQLを105ミリ秒かかりました

データを取得する方法は次のとおりです。

return (db.As<MyObject>().Lists["urn:list"].GetAll());

上記のコードに問題はありますか?逆シリアル化が原因で速度が低下しているのでしょうか。ありがとう!

4

1 に答える 1

1

リモートデータストアを扱うときはいつでも、可能な場合はバッチメソッドの使用を検討してください。たとえば、ServiceStack.Redisでは、AddRangeToListを使用して複数のアイテムをリストに追加できます。

Redisの各操作は、可能な限り最適化するネットワーク呼び出しを行います。RedisClientには多くのバッチ操作があり、パイプライン化とトランザクションの両方をサポートし redis docsはるかに少ないソケット書き込みで複数の操作をバッチ処理できます。

于 2012-10-09T19:53:03.457 に答える