單頁面緩存方案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