誰もがMemcacheの使い方をすぐに学ぶことができます。私が最近学んだもう1つの方法は、クエリを実行しないモデルプロパティにindexed=Falseを設定することです。他に何がありますか?大きなものは何ですか?
2 に答える
カップルが私たちを助けてくれました(最初はすべてがぶら下がっているわけではありません)。まず、結合を減らすためにデータストアを非正規化しました。私はSQLのバックグラウンドから来たので、SQL用語を使用しています。一般的にクエリされる要素を分散させることで、Memcacheを考慮した後でも、実行する必要のある読み取りの数を大幅に削減しました。書き込みが増える可能性がありますが、ほとんどのアプリでは、読み取りの数が書き込みの数をはるかに上回っています。
次に、タスクキュー、バックエンド、チャネルAPIの使用をより頻繁に開始しました。具体的な例は覚えていませんが、一部の処理をキューとバックエンドに移動し、クライアントにポーリングさせるのではなくチャネル経由でデータを送信することで、フロントエンドの使用量を空きクォータマーク未満に減らすことができたことを覚えています。
また、データアクセスにはobjectifyを使用します。これは、必要に応じてmemcacheを自動的に使用するように構成します。
offset
クエリでは使用しないでください。代わりにカーソルを使用してください。説明: offset は、offset+limit までのすべてのデータをロードし、料金を請求しますが、制限エンティティのみを返します。
アイドル状態のインスタンスと保留中のレイテンシをアプリに合わせて調整することで、インスタンスの使用を最小限に抑えます。