從我讀過的內容來看,您無法每次使用memcached存儲超過1mb的值或數據。如果是這種情況,在將數組提交給memcached之前,有沒有辦法找到數組的文件大小?PHP如何找出memcached陣列上的文件大小
回答
Memcache的任何其他方式是鍵/值存儲,因此不「知道'更多「複雜」對象。該模塊所做的是將值爲&的值作爲字符串序列化。所以,總的尺寸= strlen(serialize($value));
請注意,你想要的non-overloaded version of strlen
!
謝謝你Wrikken!我從來不知道'函數重載',使用這些函數的重載版本的pro/con有什麼用途? – user1448020
重載的方法對於utf8字符串尤其有用。事情是,它將每個角色存儲在經典strlen的3倍以上的空間中。試試這個片段:var_export(strlen('ï')。'!=='.mb_strlen('ï'));'。 Memcache不使用這些mb_ *函數來使用它們會給你一個錯誤的結果;) – korko
或者嘗試一個複雜的方式strlen(serialize($array));
或者你試試最簡單的方式
$before = memory_get_usage();
$myarray = array(<content>);
$size = memory_get_usage() - $before;
想不出遺憾
如果GC在'memory_get_usage()'調用之間發生,會發生什麼? – hafichuk
感謝提示korko,這是一個有用的知識片段,但如果memcached將數據存儲爲序列化字符串,並且考慮到memcached服務器可能位於外部機器上,我認爲strlen(serialize($ array));方法更好,我試圖達到。 – user1448020
hafichuk,GC是什麼意思? – user1448020
這並不直接回答你的問題,但是如果需要,你可以將1MB限制改爲更大的東西。
參見:http://linux.die.net/man/1/memcached
-I覆蓋每個板頁面的默認大小。默認值是1mb。默認值爲1m,最小值爲1k,最大值爲128m。調整此值 會更改項目大小限制。請注意,這也會增加 平板的數量(使用-v查看)以及 memcached的整體內存使用量。
您也可以啓用壓縮以減小值的大小。見:http://ca.php.net/manual/en/memcache.setcompressthreshold.php
- 1. PHP glob()沒有列出文件大小
- 2. 使用php查找memcached大小使用php
- 3. 列出大小大於N的文件
- 4. 如何將更大的陣列縮小爲更小的陣列?
- 5. PHP Memcached的字符串大小超過
- 6. 如何列出隨機文件夾下的文件大小?
- 7. 找出文件的大小C++
- 8. 如何找到文件的大小
- 9. 文件上傳php與文件陣列
- 10. PHP最大上傳文件大小
- 11. 陣列內最大調用堆棧大小超出陣列
- 12. 形成一個大陣列出小的
- 13. JavaScript計算出陣列的大小
- 14. 根據文件大小動態分配大小爲陣列 - C
- 15. 陣列大小的條件不產生任何輸出 - C
- 16. Java URLConnection:如何找出網頁文件的大小?
- 17. php文件上傳'的大小
- 18. 文件夾大小如何大於磁盤上的大小?
- 19. 如何找到最小/最大值由軸在numpy的陣列
- 20. 如何找到pdf文件大小?
- 21. PHP複製文件如果文件大小大於文件B的大小
- 22. 如何在Ruby on Rails中找到上傳文件的大小?
- 23. 如何獲得文件大小小於500mb的文件列表?
- 24. 如何找出nginx提供多少文件大小?
- 25. 如何限制PHP中的文件上傳大小?
- 26. 如何增加php文件的上傳大小
- 27. 如何在php中允許有限大小的文件上傳?
- 28. 如何在PHP上調整圖像文件的大小?
- 29. 如何確定HTML/PHP上傳前的文件大小?
- 30. 如何找出JFrame的實際大小?
你是什麼意思的數組文件大小? – ajreal
我認爲op只是意味着數組的大小......因爲在這種情況下文件大小確實沒有意義。 – Wrikken
你使用了什麼壓縮級別? – ajreal