まず第一に、あなたの鍵は多くの文字から構成されているようです。キー名もメモリ(1バイト/文字)を占有するので、できるだけ短くしてください。私は、キーの名前が値よりも大きい状況を見てきました。これは、空の配列または空の値を格納するケースがある場合に発生します。
キーの構造。私はあなたの例から、あなたが保存したいオブジェクトがparamsによって識別されていると推測します(1つはアイテムIDかもしれないし、おそらく検索[...]のためのフィルタかもしれません)。接頭辞で始まります。接頭辞は、オブジェクトクラスの名前(または一般的にオブジェクトを示す簡略化した名前)でなければなりません。
ほとんどの場合、キーにはプレフィックス+識別子が付きます。あなたの例では、複数の識別子があります。そのうちの1つが一意のIDの場合は、prefix + id
とすれば十分です。
オブジェクトが大規模で、すべてを常に使用するとは限らない場合は、戦略を複数のキーストレージに変更します。最も一般的な値を格納するため、またはオブジェクトのコンポーネントを格納するために1つのメインキーを使用します。値は個別のキーに格納されます。パイプを利用すると1を使用して、一つの接続では、オブジェクト全体を取得する「複数」の問合せ:
person_33 = array(
properties => array(age, height, weight)
);
person_33_age = 28;
person_33_height = 6;
person_33_weight = 150;
Memcachedの用途:
mainKey = prefix + objectId;
object = getFromCache(mainKey);
startCachePipeline();
foreach (object[properties] as property) {
object->property = getFromCache(prefix + objectId + property);
}
endCachePipeline();
例えば構造「人物」オブジェクトは、その後のようなものになるでしょうメモリは、内部に格納されたオブジェクトのサイズが同じ場合に最も効率的です。オブジェクト間のサイズの差が大きければ大きいほど(大きなオブジェクトが1つ失われたり、単一のケースが失われたり、メモリが無駄になりますが)、無駄なメモリが増えます。
希望すると助かります!
このメソッドがハッシュ作成に多くのCPUを必要とするかどうか知っていますか? –
機能が言語で構築されていれば、私は思っています。ペンティアムP5の90MhzでMD5を作ると、毎秒13.2MBになります。 –
okありがとう、私はそれをいくつかのreflexion –