2

私が読んだことから、memcached では一度に 1 MB を超える値やデータを保存することはできません。この場合、memcached に送信する前に配列のファイルサイズを調べる方法はありますか?

4

3 に答える 3

1

Memcache はキーと値のストアであるため、より「複雑な」オブジェクトについて「認識」していません。モジュールが行うことは、値をシリアル化して文字列として保存することです。したがって、合計サイズ =のオーバーロード バージョンがstrlen(serialize($value));必要であることに注意してください。strlen

于 2012-06-12T22:21:54.147 に答える
0

これはあなたの質問に直接答えるものではありませんが、必要に応じて 1MB の制限をより大きなものに変更できます。

参照: http://linux.die.net/man/1/memcached

-I 各スラブ ページのデフォルト サイズをオーバーライドします。デフォルトは 1MB です。デフォルトは 1m、最小は 1k、最大は 128m です。この値を調整すると、項目のサイズ制限が変更されます。これにより、スラブの数も増加し (表示するには -v を使用)、memcached の全体的なメモリ使用量も増加することに注意してください。

圧縮を有効にして、値のサイズを縮小することもできます。参照: http://ca.php.net/manual/en/memcache.setcompressthreshold.php

于 2012-06-12T22:33:38.060 に答える
-1

複雑な方法strlen(serialize($array)); を試すか、簡単な方法を試すか

$before = memory_get_usage();
$myarray = array(<content>);
$size = memory_get_usage() - $before;

他に思いつきませんでしたごめんなさい

于 2012-06-12T22:21:39.160 に答える