nginx+Memcached 缓存设计
单页面缓存方案
单静态页缓存
解决问题场景
常见的缓存设计利用System.Web.Cache 保存在内存内,效率高,可以减轻数据库访问的压力。但是Web除了获取数据之外,还有呈现页面渲染,生成HTML很多功能都是消耗性能。在Web层也需要一个缓存,同时柔性设计,应用代码不需要大变动。
架构

客户端 访问 /Report
Nginx 接收请求,判断Memcached是否存在以该网址的Key,存在直接返回不经过IIS,不存在 ,透传到IIS,并在Memacched中保存
优势:memcached性能好,容易部署集群。相比静态生成,容易管理,不会产生磁盘IO。柔性设计,应用代码不需要任何修改。
问题:保存网页默认有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
nginx+Memcached 缓存设计的更多相关文章
- nginx+memcached缓存图片
1.nginx的配置如下: location ^~ /images/ { set $memcached_key "$uri"; #用URI作为key去memcached中 ...
- 受教了,memcache比较全面点的介绍,受益匪浅,适用memcached的业务场景有哪些?memcached的cache机制是怎样的?在设计应用时,可以通过Memcached缓存那些内容?
基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 ...
- windows使用nginx+memcached实现负载均衡和session或者缓存共享
windows使用nginx+memcached实现负载均衡和session或者缓存共享 两台server server1:115.29.186.215 windows2008 64位操作系统 ser ...
- 【转】nginx+memcached构建页面缓存应用
如需转载请注明出处: http://www.ttlsa.com/html/2418.html nginx的memcached_module模块可以直接从memcached服务器中读取内容后输出,后续的 ...
- 二、NOSQL之Memcached缓存服务实战精讲第一部
1.Memcached是一套数据缓存系统或软件. 用于在动态应用系统中缓存数据库的数据,减少数据库的访问压力,达到提升网站系统性能的目的:Memcached在企业应用场景中一般是用来作为数据库的cac ...
- Memcached缓存瓶颈分析
Memcached缓存瓶颈分析 获取Memcached的统计信息 Shell: # echo "stats" | nc 127.0.0.1 11211 PHP: $mc = new ...
- nginx+memcached+ftp上传图片+iis
nginx+memcached+ftp上传图片+iis 自毕业以来,一直在现在公司做订餐系统的开发,那会儿没有口碑,没有饿了么,更别说美团外卖,百度外卖了...因为规模都比较小,都是一个服务器包含数据 ...
- Memcached缓存入门篇
Asp.Net中使用Couchbase——Memcached缓存入门篇 前言 本文的主要目的就是简单的进行使用Memcached.这是Memchahed的官网http://memcached.org/ ...
- memcached缓存技术
初学memcached缓存技术,如果文章写得不好还请谅解 应用环境:win7 实现环境:cmd,eclipse Memcached简洁而强大.它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存 ...
随机推荐
- 创建docker私人仓库
关于创建docker私人仓库 1.1. 安装步骤 1.1.1. 直接从公共库上面下载register镜像在本地执行 1.1.1.1. ...
- [AR]Vumark(下一代条形码)
VuMark 准备知识 Vumark的说明: https://library.vuforia.com/articles/Training/VuMark https://library.vuforia. ...
- WWW读取安卓外部音乐文件
需求分析 使用Everyplay(2121-1540版本)录屏,在升级SDK之后,遇到个问题,调用安卓原生的mediaplay进行播放音乐,在录屏时无法录制到声音,所以想到的解决办法是在Unity中播 ...
- C语言文法
C语言文法 源程序 → 外部声明 | 子程序(外部声明) 外部声明 → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ ...
- PHP基础语法
PHP:超级文本预处理器一,PHP的四对标记 <?php ?> <script language="php"> <script> ...
- [原]使用node-mapnik生成openstreetmap-carto风格的瓦片
上回说到如何在CentOS上部署node-mapnik,本想着接下来学习如何使用node-mapnik生成openstreetmap的瓦片图,没想到在接下来的近40天的时间里忙成了狗!好不容易等到元旦 ...
- 基于C/S架构的3D对战网络游戏C++框架_05搭建系统开发环境与Boost智能指针、内存池初步了解
本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...
- 2016 daily
2016.01.06 leetcode 切题数达到 200+,截止目前 137.虽然一年 63 题看似不多,但是 easy 的题目基本已经切完,质量 >> 数量(专注 leetcode,可 ...
- HTTP相关函数
1.headers_list() //返回头部信息 2.header("Content-type: text/html; charset=utf-8") //修改编码 3.head ...
- redis分片
本文是在window环境下测试 什么是分片 当数据量大的时候,把数据分散存入多个数据库中,减少单节点的连接压力,实现海量数据存储 那么当多个请求来取数据时,如何知道数据在哪个redis呢,redis有 ...