閱讀76 返回首頁    go 阿裏雲 go 技術社區[雲棲]


阿裏雲Redis加速Typecho博客訪問

寫在開始

一不小心,博主趁著阿裏雲搞活動,一口氣把Redis服務續費了3年(到期時間:2021-05-03,不知那時候博客是否健在?)

盡管隻有小小256MB的容量,但是對於目前網站的訪問量來說已足矣了。

繼上次,論壇加速飛起來之後,緩存也就用了區區的50MB+左右,很顯然是有點浪費了。

redis.png

前幾日,博客也上了把安全套(HTTPS),提升了逼格並小小的裝逼了一下。都說加S會影響網站的速度,顯然這是毋庸置疑的。盡管很早就上了阿裏雲智能CDN,顯然擋不住我追求速度的極限。

突然,又好想裝逼了。

8.gif

相關環境

操作係統:Linux centos 6.5
Web服務器:nginx/1.10.3
博客程序:Typecho
緩存服務:阿裏雲Redis
緩存插件:TpCache

安裝插件

TpCache是減緩網站並發壓力而開發的緩存插件,支持Memcache,Redis,Mysql三種驅動。

下載地址:TpCache

後台設置

下載-解壓-重命名為TpCache-後台啟用即可,如圖:

123456.png

這裏,需要注意的是,插件本身是不支持密碼訪問的。由於阿裏雲的Redis服務需要密碼訪問,就簡單的修改了一下typecho_redis.class.php文件(部分代碼):

 public function init($option)
    {
        try{
            $this->redis = new Redis();
            $this->redis->connect($this->host, $this->port);
            $this->redis->auth('redis密碼');
        }catch (Exception $e){
            echo $e->getMessage();
        }
    }

由於博客是支持https的,所以選擇了開啟支持SSL。

組件支持

由於使用的是阿裏雲的Redis服務,這裏隻需要配置phpredis並開啟redis擴展即可。

redis配置參考:阿裏雲Redis加速Discuz論壇訪問

緩存更新機製

  • 來自原生評論係統的評論
  • 後台文章或頁麵更新
  • 重啟redis
  • 緩存到期

測試分析

ab(apache benchmark) - apache自帶的一個測試工具,一般把apache壓力測試稱為AB測試。

我們可以模擬10個並發用戶,對一個頁麵發送100個請求。

ab -c 10 -n 100 https://blog.52itstyle.com/archives/186/

我們這裏,隨便取幾個參數做對比。

開啟Redis緩存前

//整個測試持續的時間
Time taken for tests:   23.176 seconds 
//大家最關心的指標之一,相當於 LR 中的 每秒事務數 ,後麵括號中的 mean 表示這是一個平均值
Requests per second:    4.31 [#/sec] (mean)
//大家最關心的指標之二,相當於 LR 中的 平均事務響應時間 ,後麵括號中的 mean 表示這是一個平均值
Time per request:       2317.623 [ms] (mean)
//平均每秒網絡上的流量,可以幫助排除是否存在網絡流量過大導致響應時間延長的問題
Transfer rate:          139.82 [Kbytes/sec] received
//整個場景中所有請求的響應情況
ercentage of the requests served within a certain time (ms)
  50%   1071
  66%   1304
  75%   1693
  80%   1874
  90%   2705
  95%   4462
  98%  14752
  99%  15347
 100%  15347 (longest request)

開啟Redis緩存後

//整個測試持續的時間
Time taken for tests:   15.917 seconds
//大家最關心的指標之一,相當於 LR 中的 每秒事務數 ,後麵括號中的 mean 表示這是一個平均值
Requests per second:    6.28 [#/sec] (mean)
//大家最關心的指標之二,相當於 LR 中的 平均事務響應時間 ,後麵括號中的 mean 表示這是一個平均值
Time per request:       1591.713 [ms] (mean)
//平均每秒網絡上的流量,可以幫助排除是否存在網絡流量過大導致響應時間延長的問題
Transfer rate:          203.40 [Kbytes/sec] received
//整個場景中所有請求的響應情況
Percentage of the requests served within a certain time (ms)
  50%   1263
  66%   1491
  75%   1816
  80%   1987
  90%   2507
  95%   3917
  98%   4049
  99%   4658
 100%   4658 (longest request)

測試分析,簡單的對比以上參數,效果還是比較顯著的。

最後更新:2017-06-21 20:52:03

  上一篇:go  暢聊視頻點播與媒體轉碼工作流
  下一篇:go  CDN緩存不命中排查