nginx+Memcached 緩存設計

單頁面緩存方案nginx

 

單靜態頁緩存數據庫

 

解決問題場景windows

常見的緩存設計利用System.Web.Cache 保存在內存內,效率高,能夠減輕數據庫訪問的壓力。可是Web除了獲取數據以外,還有呈現頁面渲染,生成HTML不少功能都是消耗性能。在Web層也須要一個緩存,同時柔性設計,應用代碼不須要大變更。後端

 

 

架構緩存

 

 

 

 

客戶端 訪問 /Report服務器

Nginx 接收請求,判斷Memcached是否存在以該網址的Key,存在直接返回不通過IIS,不存在 ,透傳到IIS,並在Memacched中保存架構

 

優點:memcached性能好,容易部署集羣。相比靜態生成,容易管理,不會產生磁盤IO。柔性設計,應用代碼不須要任何修改。memcached

問題:保存網頁默認有1M限制,key最大長度256位,最長過時30天性能

 

緩存策略:被動過時(設計固定過時時間);後臺開線程 更新須要更新的網址;對URL增長#refresh配置成自動觸發更新測試

 

測試效果:


 


 

 

DEMO:

1.安裝memcached

解壓,在CMD 中運行 memcached.exe -d install 運行成功以後在windows服務中安裝了memcached服務,啓動之。

能夠經過telnet 127.0.0.1 11211 判斷是否安裝啓動成功

2.運行一個ASPNET網站

該網址的/Report路徑下的頁面咱們將會緩存300s

3.運行nginx (windows用於測試環境,使用VC2010編譯)

解壓,在當前目錄下conf的nginx.conf 進行配置

其中 proxy_pass http://localhost:48273/Report/;  爲後端IIS代理地址,修改成實際地址端口

 

CMD中運行nginx.exe 將啓動nginx

4.訪問http://localhost:81/Report/ 查看緩存效果


 

擴展:

針對頁面存在我的信息能夠使用CSI技術(頁面上用Ajax調用我的信息數據)或者使用ESI標籤配置Vanish服務器來解決 下回再解析

 

 所需測試windows版本nginx 和memcached

http://files.cnblogs.com/files/yuzukwok/NginxMemcached%E8%BD%AF%E4%BB%B6.rar

相關文章
相關標籤/搜索