私が読んだことから、memcached では一度に 1 MB を超える値やデータを保存することはできません。この場合、memcached に送信する前に配列のファイルサイズを調べる方法はありますか?
3 に答える
Memcache はキーと値のストアであるため、より「複雑な」オブジェクトについて「認識」していません。モジュールが行うことは、値をシリアル化して文字列として保存することです。したがって、合計サイズ =の非オーバーロード バージョンがstrlen(serialize($value));
必要であることに注意してください。strlen
これはあなたの質問に直接答えるものではありませんが、必要に応じて 1MB の制限をより大きなものに変更できます。
参照: http://linux.die.net/man/1/memcached
-I 各スラブ ページのデフォルト サイズをオーバーライドします。デフォルトは 1MB です。デフォルトは 1m、最小は 1k、最大は 128m です。この値を調整すると、項目のサイズ制限が変更されます。これにより、スラブの数も増加し (表示するには -v を使用)、memcached の全体的なメモリ使用量も増加することに注意してください。
圧縮を有効にして、値のサイズを縮小することもできます。参照: http://ca.php.net/manual/en/memcache.setcompressthreshold.php
複雑な方法strlen(serialize($array));
を試すか、簡単な方法を試すか
$before = memory_get_usage();
$myarray = array(<content>);
$size = memory_get_usage() - $before;
他に思いつきませんでしたごめんなさい