有沒有辦法使用PHP將小數據存儲在RAM內存中,以便我可以訪問不同會話之間的數據而不是重新生成它。類似於memcached的東西(我沒有訪問memcahced)。我目前的解決方案只是將數據保存在文件中。如何使用PHP將數據存儲在RAM內存中?
回答
我假設你在某種共享服務器上。
memcached
或其他緩存解決方案確實是這樣做的唯一方法。
會話是跨PHP頁面保持數據最重要的方法,它基於文件工作。您可以將會話處理程序更改爲基於數據庫,但這不是基於RAM的。
據我所見,無需在根級上更改系統(例如安裝memcached或將會話文件存儲在RAM磁盤上),這是不可能的。
您可以隨時使用內存數據庫來保存數據。雖然可能過度殺傷。
我很驚訝沒有人提高你的答案。我已經成功使用mysql內存表,它們非常快。RDB可能會影響會話,但當您無法訪問memcached或/ dev/ – 2015-03-08 19:52:45
APC?
它從memcached工作不同;在memcached中,您可以訪問各種語言(c,python等)的數據,而APC僅適用於PHP。
編輯你確定APC安裝正確嗎? 你在你的php.ini中添加了extension=apc.so
嗎?並重新啓動Apache(即時假設你在一個燈服務器與Apache2)? phpinfo();
對APC有什麼看法?
這是一個簡單的測試工作非常適合我:
<?php
/*
* page.php
* Store the variable for 30 seconds,
* see http://it.php.net/manual/en/function.apc-add.php
* */
if(apc_add('foo', 'bar', 30)){
header('Location: page2.php');
}else{
die("Cant add foo to apc!");
}
<?php
/*
* page2.php
* */
echo 'foo is been set as: ' . apc_fetch('foo');
PS:我更喜歡使用apc_add
超過apc_store
,但它們之間的唯一區別是,apc_add犯規覆蓋變量,但如果調用將失敗兩次使用相同的密鑰:
使用此名稱存儲變量。鍵是緩存唯一的,因此試圖使用apc_add()以已存在的鍵存儲數據不會覆蓋現有數據,而是返回FALSE。 (這是apc_add()和apc_store()之間的唯一區別。)
這是腳本的味道/任務的問題,但上面的例子與apc_store工作過。
時,這是一個很好的選擇,他無法安裝memcached,因此他很可能無法安裝APC – 2010-11-03 16:46:09
確實如此,但許多主機都允許使用APC(有一些限制) - 我們需要問他。 – Strae 2010-11-03 16:48:16
在/dev/shm
中創建一個文件,並將其保存在內存中,直到機器重新啓動。這可能會或可能不會比使用任何舊文件更快,具體取決於您的使用模式。
他似乎在共享服務器 – 2010-11-03 16:46:53
@Pekka那麼,他被擰了...讓我們只希望他的文件獲取操作系統緩存。 – kijin 2010-11-03 16:54:33
- 1. 在Ram中存儲數據
- 2. 數據庫存儲在SSD或RAM中,
- 3. ASP.NET MVC - 在RAM中存儲數據
- 4. 如何在Ruby on Rails中將數據存儲在內存中
- 5. 變量如何存儲在RAM內存中?
- 6. PHP應用程序如何將數據保存在內存中?
- 7. 如何在RAM中的數據存儲在VERILOG
- 8. 如何將數據存儲在臨時內存中
- 9. mov eax如何將數據存儲在內存中?
- 10. 如何將長數據類型存儲在內存中?
- 11. 如何將數據字典/表存儲在內存中?
- 12. 如何將數據存儲在內存中
- 13. Kingfisher將數據緩存在RAM中
- 14. 如何使用PHP將webhook數據存儲到數據庫?
- 15. 如何將數據存儲在存儲器或寄存器中
- 16. 如何從RAM內存中存儲和加載類?
- 17. 使用MySQL和PHP將數據存儲在MySQL數據庫中
- 18. 如何將數據存儲內的MongoDB
- 19. 下載存儲在RAM中?
- 20. 如何使用php將圖像存儲到MYSQL數據庫中
- 21. 如何將數據存儲在SQL數據庫中的PHP
- 22. 如何使用apache drill將s3數據保存在內存中?
- 23. 如何使用asp.net將數據存儲在sql數據庫中#
- 24. 如何使用C#將數據存儲在數據庫中?
- 25. 如何使用Textarea將此數據存儲在數據庫中?
- 26. 爲什麼ff仍將數據存儲在RAM中?
- 27. 何時使用數據庫將會話存儲在PHP中
- 28. 將PHP數據存儲在Cookie中
- 29. 非-Ram存儲
- 30. 使用cherrypy將數據存儲到緩存內存
[PHP的服務器端變量,將永遠「活着」的可能重複](http://stackoverflow.com/questions/4086044/php-server-side-variables-that-will-live-for-永遠) - 那裏有很多答案適用於你的問題。 – Gordon 2010-11-03 16:57:36
爲什麼?在任何現代操作系統上(存儲不在共享文件系統上),文件數據都會緩存在內存中。 – symcbean 2010-11-03 17:04:00
編輯我的答案。 – Strae 2010-11-03 20:20:55