国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

讓WordPress使用Redis緩存來進行加速

2024-09-07 00:52:43
字體:
來源:轉載
供稿:網友

Redis是一個高級的keyvalue存儲系統,類似memcached,所有內容都存在內存中,因此每秒鐘可以超過10萬次GET操作。

我下面提出的解決方案是在Redis中緩存所有輸出的HTML內容而無需再讓WordPress重復執行頁面腳本。這里使用Redis代替Varnish設置簡單,而且可能更快。

安裝Redis

如果你使用的是Debian或者衍生的操作系統可使用如下命令安裝Redis

aptgetinstallredisserver

或者閱讀安裝指南

使用Predis作為Redis的PHP客戶端

你需要一個客戶端開發包以便PHP可以連接到Redis服務上。

這里我們推薦Predis.上傳predis到WordPress的根目錄。

前端緩存的PHP腳本

步驟1 在WordPress的根目錄創建新文件withredis,內容如下

  1. Changethesetwovariables: 
  2.  
  3. $seconds_of_caching=60 60 24 7;7days. 
  4.  
  5. $ip_of_this_website='204.62.14.112'
  6.  
  7. ThisfileiswrittenbyJimWestergren,copyrightallrightsreserved. 
  8.  
  9. Seemorehere:jimwestergrenwordpresswithredisasafrontendcache 
  10.  
  11. Thecodeisfreeforeveryonetousehowtheywantbutpleasementionmynameandlinktomyarticlewhenwritingaboutthis. 
  12.  
  13. Change$ip_of_this_websitetotheIPofyourwebsiteabove
  14.  
  15. Add?refresh=yestotheendofaURLtorefreshit'scache 
  16.  
  17. Youcanalsoentertheredisclientviathecommandpromptwiththecommand"rediscli"andthenremoveallcachewiththecommand"flushdb"
  18.  
  19. VerynecessaryifyouuseCloudfare: 
  20.  
  21. ifisset$_SERVER['HTTP_CF_CONNECTING_IP']{ 
  22.  
  23. $_SERVER['REMOTE_ADDR']=$_SERVER['HTTP_CF_CONNECTING_IP']; 
  24.  
  25.  
  26. ThisisfromWordPress: 
  27.  
  28. define'WP_USE_THEMES',true; 
  29.  
  30. Startthetimer: 
  31.  
  32. functiongetmicrotime$t
  33.  
  34. list$usec,$sec=explode"",$t
  35.  
  36. returnfloat$usec+float$sec
  37.  
  38.  
  39. $start=microtime; 
  40.  
  41. InitiateredisandthePHPclientforredis: 
  42.  
  43. include"predis"
  44.  
  45. $redis=newPredis/Client''
  46.  
  47. fewvariables: 
  48.  
  49. $current_page_url="".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
  50.  
  51. $current_page_url=str_replace'?refresh=yes','',$current_page_url
  52.  
  53. $redis_key=md5$current_page_url
  54.  
  55. Thisfirstcaseiseithermanualrefreshcachebyadding?refresh=yesaftertheURLorsomebodypostingacomment 
  56.  
  57. ifisset$_GET['refresh']||substr$_SERVER['REQUEST_URI'],12=='?refresh=yes'||$_SERVER['HTTP_REFERER']==$current_page_url$_SERVER['REQUEST_URI']!=''$_SERVER['REMOTE_ADDR']!=$ip_of_this_website
  58.  
  59. require'.wpblogheader'
  60.  
  61. $redisdel$redis_key
  62.  
  63. Secondcase:cacheexistinredis,let'sdisplayit 
  64.  
  65. }elseif$redisexists$redis_key
  66.  
  67. $html_of_current_page=$redisget$redis_key
  68.  
  69. echo$html_of_current_page
  70.  
  71. echo"!Thisiscache 
  72.  
  73. third:anormalvisitorwithoutcache.Anddonotcacheapreviewpagefromthewpadmin: 
  74.  
  75. }elseif$_SERVER['REMOTE_ADDR']!=$ip_of_this_websitestrstr$current_page_url,'preview=true'==false{ 
  76.  
  77. require'.wpblogheader'
  78.  
  79. $html_of_current_page=file_get_contents$current_page_url
  80.  
  81. $redissetex$redis_key,$seconds_of_caching,$html_of_current_page
  82.  
  83. echo"!Cachehasbeenset 
  84.  
  85. lastcase:thenormalWordPress.Shouldonlybecalledwithfile_get_contents: 
  86.  
  87. }else
  88.  
  89. require'.wpblogheader'
  90.  
  91.  
  92. Let'sdisplaysomepagegenerationtimenote:CloudFlaremaystripo utcomments: 
  93.  
  94. $end=microtime; 
  95.  
  96. $t2=getmicrotime$endgetmicrotime$start
  97.  
  98. if$_SERVER['REMOTE_ADDR']!=$ip_of_this_website
  99. //Vevb.com 
  100. echo"!CachesystembyJimWestergren.Pagegeneratedin".round$t2,5."seconds. 
  101.  

或者直接下載withredis

步驟2 將上述代碼中的IP替換成你的IP

步驟3 在.htaccess中將所有出現的地方改為withredis,如果你使用的是Nginx則修改nginx.conf中的為withredis并重載Nginx killallsHUPnginx。

性能測試

1.沒有Redis的情況下,平均執行1.614秒,頁0.174秒無任何緩存插件

2.使用Redis的情況下,平均頁面執行時間0.00256秒

我已經在我的博客中使用了如上的方法進行加速很長時間了,一切運行良好。

其他建議

我的環境是Nginx+PHPFPM+APC+Cloudflare+Redis.安裝在一個nanoVPS中,無緩存插件。

請確認使用了gzip壓縮,可加快訪問速度。

訪問wpadmin

要訪問wpadmin必須使用wpadmin代替原來的wpadmin.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉定区| 拉萨市| 通山县| 漳平市| 栖霞市| 阿拉尔市| 墨江| 滕州市| 延津县| 台中市| 明溪县| 十堰市| 保康县| 新民市| 襄垣县| 靖远县| 石柱| 永靖县| 丹棱县| 瓦房店市| 大港区| 轮台县| 嘉禾县| 齐齐哈尔市| 南雄市| 琼结县| 长治县| 乐平市| 卢龙县| 中卫市| 铜梁县| 蒙阴县| 纳雍县| 祁阳县| 桐梓县| 吉安市| 防城港市| 白城市| 招远市| 绥中县| 留坝县|