私の最新のプロジェクトでは、データベースからデータを返す Web サービス API を作成する必要があります。
Techs are - SQL Server 08 R2 - WCF
データは主にキーと値のペアです。たとえば、ユーザー X のお気に入りの色を取得します。
負荷は大きくはありませんが、小さなフライでもありません - ピーク時には約 1,000 リクエスト/秒です。
私の最初の考えは、Redis をキャッシュとして使用することです。つまり、SQL Server に頻繁にアクセスしないことを意味します。しかし、私はこの構成からいくつかのベンチマークなどを取得しようとしてきましたが、それは素晴らしいことではなく、Redis が本当に私の問題に何らかの利益をもたらすかどうか疑問に思っています!
アーキテクチャは - 個別の db サーバー - WCF アプリケーション サーバー - IIS - Linux Redis サーバー
私のデスクトップで遊んでみると、Redis のベンチマークは ~ 20K ops/秒です。素晴らしいもの。
ただし、各呼び出しが Web サービスを通過することを考えると、WCF レイヤーを配置すると、300 ops/秒しか取得できません。良くない。確かに、Web サービス クライアント、Web サービス、およびデータベースはすべて同じマシン上にあるため、結果が歪む可能性があります。
また、実環境に移行する場合、ネットワークの遅延が大きな要因になります。
これらのリクエストをまとめることはできません。
だから - 私の質問 - 私はすべてRedisをキャッシュとして使用することに賛成です.この状況ではキャッシュを使用する必要があることを知っています.パフォーマンスを殺す?
どんなアドバイスでも大歓迎です!
ダンカン