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

时间: 2024-10-05 05:31:59

nginx+Memcached 缓存设计的相关文章

nginx+memcached缓存图片

1.nginx的配置如下: location ^~ /images/ {     set $memcached_key  "$uri"; #用URI作为key去memcached中去读取内容     memcached_pass      127.0.0.1:11211;     memcached_connect_timeout 5s;     memcached_read_timeout 5s;     memcached_send_timeout 5s;     memcache

受教了,memcache比较全面点的介绍,受益匪浅,适用memcached的业务场景有哪些?memcached的cache机制是怎样的?在设计应用时,可以通过Memcached缓存那些内容?

基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid -d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服

nginx+tomact+memcached(缓存)集群

关于Nginx+tomcat+memcached(缓存)配置集群负载均衡的下载与安装流程: 实现的整体步骤 一:安装memcached.(memcached可以一个或者多个) 二:安装两个tomcat 三:配置msm. 四:安装nginx,实现负载均衡. 以下是详细步骤: 第一步:安装memcached 1.       下载memcached服务端memcached-1.2.6-win32-bin.zip,地址:csdn 第二步:安装tomcat 1.       安装两个tomcat6,如果

windows使用nginx+memcached实现负载均衡和session或者缓存共享

windows使用nginx+memcached实现负载均衡和session或者缓存共享 两台服务器 服务器1:115.29.186.215 windows2008 64位操作系统 服务器2:114.215.193.64 windows2008 32位操作系统 其中服务器1同时做nginx负载均衡服务器 使用概要:由于两台服务器:所以数据库连接可以使用一台服务器: 由于本人使用的ibatis框架:所以在数据库层使用ibatis Cache 这样就可以使用一台sql服务器:两台服务器访问都是缓存数

nginx+memcached构建页面缓存

传统上PHP 中使用memcache 的方法是使用 php-memcache 或 php-memached 扩展操作 memcache ,在 Nginx 上有构建更高效缓存机制的方法.就是 Nginx 直接访问 memcache ,并用 uri 和 args 等 Nginx 内置变量设定缓存 key 规则,这样,当缓存命中时, Nginx 可以跳过通过 fastcgi 和 PHP 通信的过程,直接从 memcache 中获取数据并返回. memc-nginx 和 srcache-nginx 正是

NGINX负载均衡-memcached缓存服务

实验环境: NGINX                         CentOS 7.2x86_64            IP:172.16.253.94    192.168.1.10 RealServer1                 CentOS 6.7x86_64            IP:192.168.1.20 RealServer2                 CentOS 7.2x86_64            IP:192.168.1.30 client   

ansible实现nginx双主模式反代,keepalived高可用,memcached缓存

ansible自动化运维工具配置ngnix前端反代到后端真实机,并设置keepalived高可用,在后端一台真实主机上配置httpd,mysql,php-fpm:设置memcached缓存服务器在这台真实主机上:(因为本人电脑配置问题,无法开启那么多虚拟机,所以就简单构建了一下) IP配置: Directory1(MASTER): eno16777736:172.16.72.5 eno16777736:0:172.16.72.1(虚拟VIP) eno33554976:192.168.72.1 e

memcached缓存服务器介绍及其安装过程

Memcache是什么? memcached是以LiveJournal旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件.现在 已成为mixi.hatena.Facebook.Vox.LiveJournal等众多服务中提高Web应用扩展性的重要因素. Memcached是一款开源.高性能.分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序.许多Web应用都将数据保存到RDBMS中,应用服

Nginx+Memcached+Tomcat集群配置

1.   Nginx Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebServer间的负载均衡,降低单个Web Server的负荷,以提高整体的性能与稳定性. 安装和配置Nginx的简单方式如下: 1)      下载并解压Nginx到本地目录:http://nginx.org/en/download.html 2)      对Nginx的配置主要是对它的配置文件/conf/nginx.conf的修改.如下链接是nginx.conf配置文件各个属性的详细说明: