memcached緩存命中率
⑴ 緩存的命中率有辦法能提高嗎
如果您想提升緩存命中率的話,一是增加緩存,如果所有的數據都緩存了,那命中率自然就高;二是如果緩存空間有限,那最好使用一些緩存策略,比如LRU策略,將緩存時間長,最少使用的緩存給逐出出去,比如memcached這樣的緩存服務。這樣您緩存的數據大多是熱點數據,命中率會提升不少,但如果您的業務場景本身非常隨機,不存在熱點訪問,那使用緩存的意義就不是非常大了。
⑵ Memcached 如何設置比較好Linux 伺服器中寶塔面板
配置修改:如果不懂代碼的話,不要伸手,後果自負。
負載狀態:memcached運行中的相關狀態。其中最重要的是hit這個參數,也就是命中率。當然是越高越好了。
性能調整:前面IP和埠不要改。緩存大小根據實際情況調整。根據什麼來調整呢?回到負載狀態欄,有一個「當前已使用內存」,看這個數字來調整。比如默認分配給memcached一共64M內存,但是已使用內存62M就說明memcached可用內存快要滿了,這時候就手動改大一點,比如128M。具體數字根據每天流量情況來定。
Memcached的目的就是把所有文章內容都扔進內存,這樣用戶來訪時直接讀取內存中的內容,跳過了資料庫,所以使用memcached後網站打開感覺特別快。比如網站每天發幾十篇文章,可能這個數字就調整大一點,防止不夠用了
⑶ Xcache和memcache選哪個好
memcache和 Xcache 是php的2個緩存工具。PHP5.5以來,自帶有 Zend Opcache ,不過默認沒啟用。
這些緩存器的原理:
引用
把PHP執行後的數據緩沖到內存中從而避免重復的編譯過程,能夠直接使用緩沖區已編譯的代碼從而提高速度,降低伺服器負載,它們的效率是顯而易見的,像drupal這種龐大的CMS,每次打開一個頁面要調用數十個PHP文件,執行數萬行代碼,效率可想而知
然而Opcache 只自動緩存代碼,它沒有開放一個自定義緩存的API,要用到用戶緩存的話還得用上Xcache或者memcache。
Xcache是中國人所做,看起來很牛叉,但是在實際應用中發現這個東西太不穩定了,光用它作代碼緩存(後台自動緩存PHP代碼),竟然有時候會使得整個PHP進程都當掉。然後也試了Xcache的用戶緩存,API文檔寫得真夠殘的,好在還能用,但萬沒有想到,在fastcgi模式下,緩存命中率低得可憐,用和沒用基本上差不多,明明緩存了,後一個請求過來一查卻說沒緩存,可能延時個幾秒後才得知這個已經緩存了,才能取出緩存內容。這玩意到底仔細測試沒有?我用的是3.1.0官方正式版Xcache在PHP 5.5 里作的測試,簡直就是個廢物!還記得以前在PHP5.2裡面也用它過,莫名其妙的請求失敗也時有出現。現在直接不敢再用……
相比這個XCache,memcache穩定得多。題外話:memcached和memcache又有點不同,memcached是memcache的守護進程,但是PHP中也有memcached的擴展。這兩個說實話是讓人頭暈不知道是什麼區別,其實我看來就是調用memcache的封裝模式不太一樣而已。具體哪些調用上的不同,參考 http://pecl.php.net/package/memcache 和http://pecl.php.net/package/memcached 。一看就知道memcached要多一些API函數調用,功能也更強大一些。而實際上基礎應用的話memcache已經足夠。
memcache的使用首先要有它的服務(也就是memcached進程)在跑,這個是一個小小的軟體,一般是用C++編譯,可以部署在與PHP同一台也可以不同,甚至可以分布式部署幾個memcached服務在不同的伺服器上。而PHP的memcached只是它的客戶端而已。memcached本身沒有PHP代碼緩存功能,現升到PHP5.5後直接交給自帶Opcache 了。一般用它作用戶緩存。經過實際開發,memcached穩定性是非常高的,只要有緩存,命中率幾乎在99%以上。PHP官方下提供了它的擴展可直接使用:http://pecl.php.net/package/memcache 連Windows版的DLL也直接在那裡了,不用自己再編譯。Windows下編譯這些東西真是麻煩得很啦~
綜上memcache更加穩定,推薦使用。Xcache真要用的話,還是老實在本地先測試一下再說。
此外,微軟Windows下PHP可以使用Wincache,這個的穩定性沒得說的,而且也不用守護進程。但是微軟沒能編譯適用於PHP 64位的DLL。要想通用和跨平台,memcache是首選!!