今天同事需要清理memcache中某種前綴的key的值,但memcache沒有專門的這種命令,我幫忙在網上找了一段程序:
How about this function in php: function deletekeysbyindex($prefix) { $m = new Memcached(); $m->addServer('localhost', 11211); $keys = $m->getAllKeys(); foreach ($keys as $index => $
這是 Memcache 分類的頁面,點擊下面标題查看詳細文章内容:
今天同事需要清理memcache中某種前綴的key的值,但memcache沒有專門的這種命令,我幫忙在網上找了一段程序:
How about this function in php: function deletekeysbyindex($prefix) { $m = new Memcached(); $m->addServer('localhost', 11211); $keys = $m->getAllKeys(); foreach ($keys as $index => $
我們EmojiAll.com這個網站算是做得很精細、邏輯有些複雜,各種數據庫調用很多,不過因為數據庫服務器采用阿裡雲RDS、負載不算很高,所以速度上還是可以的,前期主要注重功能,沒有太注意性能優化。
最近因為ECS服務器搬家,發現新服務器的内網帶寬比以前增加很多倍,然後打開Drupal的Devel模塊查看數據庫調用情況,發現sql語句非常多,一個典型頁面調用sql語句達到800條之多,内容很多的頁面sql語句超過4000條,雖說都還是可以在幾秒内打開,但對于有優化強迫症的人來說,顯然是無法忍受的。😖
以前其實想過要通過Memcache這種鍵值對緩存
前段時間就留意到Drupal 7的網站日志中總是出現類似這樣的報錯:
Spent 15.76 ms splitting 3.1 MB object into 4 pieces, cid = cn_18dao_zhougongjiemeng-cache-locale%3Azh-hans
今天發現運行drush cc all清理緩存的時候Linux界面也是報這樣的錯,于是又在網上找了一些帖子看:
Thousands of warnings about splitting object, can't tur
今天同事反映網站打開巨慢無比,查看阿裡雲ECS Web服務器正常,而RDS MySQL數據庫服務器有堵塞,都是被下面類似語句鍊接:
SELECT s.source, s.context, t.translation, t.language FROM mingluji_gongshang.locales_source s LEFT JOIN mingluji_gongshang.locales_target t ON s.lid = t.lid AND t.language = 'zh-hans' WHERE s.textgroup
Memcache幾年前我們就開始在Drupal站上啟用,對于降低數據庫負載的作用很明顯,偶爾會出現Memcache自己停了需要重啟Memcache服務的情況,但很少很少,幾個月也難得一次。
6月底開始申請熊掌号後,重新提交URL、提交MIP版本/AMP版本,帶來大量百度爬蟲,服務器負載明顯增高,另外其它采集者也多起來了,導緻我們網站有一陣子總是卡住,甚至随機出現白屏打不開的情況,這種白屏故障會一直持續,直到用drush cc all清理緩存後恢複。
這對網站的訪問影響太大了,如果沒有及時發現,可能幾個小時、半天都打不開,仔細查看RDS的
去年在Drupal單服務器設置Memcache緩存後,效果很明顯,今年又試用阿裡雲的開放緩存服務OCS,同樣對降低數據庫負載很有用。本來在Drupal以前用MediaWiki的時候就聽說過Memcache,去年先在Drupal上用起來了,随後在MediaWiki上也使用了單機的Memcache和阿裡雲的OCS。
Drupal上的設置還麻煩一點,MediaWiki的設置其實更簡單,參看:https://www.mediawiki.org/wiki/Memcached
不過Drupal上查看Memcache是否有效很簡單,可以查看網站狀态以
很早前開始使用MediaWiki的時候就聽說了MemCache,但一直沒有用過,直到前幾個月下力氣做Drupal優化,才安裝嘗試了Memcache,果然是效果明顯,對數據庫的壓力下降了很多,命中率在80%左右,這樣即使安裝在單台服務器上,也會讓該服務器的負載下降不少。當時記錄了一篇博客《Drupal單服務器設置Memcache緩存》。
而Memcache的典型應用其實是部署在專門的緩存服務器上,我曾經看過Wikipedia的服務器拓撲圖,緩存服務器的數量還不少。我們近期在準備撤掉部分以前的獨立服務器轉用雲平台,所以在試用阿裡雲的時候留意了有專門的開放緩存服務O
很久前用MediaWiki的使用就聽說過Memcache來加速網站,後來用Drupal看一些優化措施中也說到Memcache,但一直沒有時間精力去嘗試。
前些天把PHP代碼緩存的APC模塊安裝後,看統計數據,PHP程序代碼的命中率幾乎達到100%,服務器負下降還是比較明顯的。就幹脆一鼓作氣,我和同事配合把Memcache也安裝測試。
APC的安裝至需要與服務器的PHP環境、模塊設置有關,與Drupal程序沒有特别的關系,但Memcache除了服務器環境安裝以外,還需要對Drupal系統加裝模塊來利用Memcache,下面就記錄一下服務器
2002-2023 v11.7 a-j-e-0