缓存服务器

MemCache是什么 纯干货!-- Memcache详解

狂风中的少年 提交于 2019-12-10 01:20:49
MemCache是什么 MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题,而所开放的API使得MemCache能用于Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序语言。 另外,说一下MemCache和MemCached的区别: 1、MemCache是项目的名称 2、MemCached是MemCache服务器端可以执行文件的名称 MemCache访问模型 为了加深理解,我模仿着原阿里技术专家李智慧老师《大型网站技术架构 核心原理与案例分析》一书MemCache部分,自己画了一张图: 特别澄清一个问题,MemCache虽然被称为"分布式缓存",但是MemCache本身完全不具备分布式的功能,MemCache集群之间不会相互通信(与之形成对比的,比如JBoss Cache,某台服务器有缓存数据更新时

新型的大型bbs架构(squid+nginx

穿精又带淫゛_ 提交于 2019-12-09 23:20:47
这个架构基于squid、nginx和lvs等技术,从架构上对bbs进行全面优化和保护,有如下特点: 1、高性能:所有的点击基本上全部由前端缓存负责,提供最快速的处理。 2、高保障度:不需考虑应用程序稳定与否、程序语言是何种、数据库是何种,都能从架构上保证稳定。 3、高可用性:对应用程序的修改达到最简化:在程序的某些地方加入清缓存的语句即可,当然还需要做页面静态化的工作和统计工作。 首先看图,这个图比较大: 这个架构的特点和一些流程的说明: 1、主域名和图片域名分离 域名分离可以使流量分离,缓存策略分离等等,好处诸多。bbs初期一定要做好规划,将图片用另外的域名独立服务,即使没有足够机器,域名也要先分开。另外,图片服务器可以使用有别于主域名的另一个域名,一个好处是可以减少读取cookie对图片服务器的压力,另一个是提高安全性,避免cookie泄露。 2、使用LVS作为前端、二级代理和数据库的访问入口 使用LVS作为入口,比其他任何一种方式都来得更优质。首先LVS的负载能力很强,因为它工作在网络协议的第4层,使用虚拟ip技术,所以它本身并不担负任何流量的处理,仅仅是一个封包转发的功能;第二,LVS的配置相对简单而且稳定,一般去调整的几率比较低,也减少了因人为等因素而出现故障;第三,LVS可以处理任何端口的负载均衡,所以它基本可以做所有服务的负载均衡和容错。在这个架构中

iOS ASIHTTPRequest详解

江枫思渺然 提交于 2019-12-09 23:13:42
ASIHTTPRequest对CFNetwork API进行了封装,并且使用起来非常简单,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互。 ASIHTTPRequest功能很强大,主要特色如下: l 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作 l 下载的数据,可存储到内存中或直接存储到磁盘中 l 能上传本地文件到服务端 l 可以方便的访问和操作请求和返回的Http头信息 l 可以获取到上传或下载的进度信息,为应用程序提供更好的体验 l 支持上传或下载队列,并且可获取队列的进度信息 l 支持基本、摘要和NTLM身份认证,在同一会话中授权凭证会自动维持,并且可以存储在Keychain(Mac和iOS操作系统的密码管理系统)中 l 支持Cookie l 当应用(iOS 4+)在后台运行时,请求可以继续运行 l 支持GZIP压缩数据 l 内置的ASIDownloadCache类,可以缓存请求返回的数据,这样即使没有网络也可以返回已经缓存的数据结果 l ASIWebPageRequest –可以下载完整的网页,包括包含的网页、样式表、脚本等资源文件,并显示在UIWebView /WebView中。任意大小的页面都可以无限期缓存

ASIHTTPREQUEST详解

给你一囗甜甜゛ 提交于 2019-12-09 23:13:24
目录 发起一个同步请求 创建一个异步请求 队列请求 请求队列上下文 ASINetworkQueues, 它的delegate提供更为丰富的功能 取消异步请求 安全的内存回收建议 向服务器端上传数据 下载文件 获取响应信息 获取请求进度 cookie的支持 大文件断点续传 ASIDownloadCache 设置下载缓存 多种的缓存并存 缓存策略 缓存存储方式 缓存其它特性 实现自定义的缓存 使用代理请求 ASIHTTPRequest, 请求的其它特性 ASIHTTPRequest是一款极其强劲的HTTP访问开源项目。让简单的API完成复杂的功能, 如: 异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证 在新的版本中,还加入了Objective-C闭包Block的支持,让我们的代码更加轻简灵活。 下面就举例说明它的 API用法 。 发起一个同步请求 同步意为着线程阻塞,在主线程中使用此方法会使应用Hang住而不响应任何用户事件。所以,在应用程序设计时,大多被用在专门的子线程增加用户体验,或用异步请求代替(下面会讲到)。 - (IBAction)grabURL:(id)sender { NSURL *url = [NSURL URLWithString:@" http://allseeing-i.com" ]; ASIHTTPRequest

【深入浅出Node.js系列七】Connect模块解析

我怕爱的太早我们不能终老 提交于 2019-12-09 17:11:42
#0 系列目录# 深入浅出Node.js系列 【深入浅出Node.js系列一】什么是Node.js 【深入浅出Node.js系列二】Node.js&NPM的安装与配置 【深入浅出Node.js系列三】深入Node.js的模块机制 【深入浅出Node.js系列四】Node.js的事件机制 【深入浅出Node.js系列五】初探Node.js的异步I/O实现 【深入浅出Node.js系列六】Buffer那些事儿 【深入浅出Node.js系列七】Connect模块解析 #1 Connect模块背景# Node.js的愿望是成为一个能构建高速,可伸缩的网络应用的平台,它本身具有基于事件,异步,非阻塞,回调等特性,正是基于这样的一些特性,Node.js平台上的Web框架也具有不同于其他平台的一些特性,其中Connect是众多Web框架中的佼佼者。 Connect在它的官方介绍中,它是Node的一个中间件框架。超过18个捆绑的中间件和一些精选第三方中间件。尽管Connect可能不是性能最好的Node.jsWeb框架,但它却几乎是最为流行的Web框架。为何Connect能在众多框架中胜出,其原因不外乎有如下几个: 模型简单 中间件易于组合和插拔 中间件易于定制和优化 丰富的中间件 Connect自身十分简单, 其作用是基于Web服务器做中间件管理 。至于如何处理网络请求,

浅谈如何实现HTML5的离线存储

≯℡__Kan透↙ 提交于 2019-12-09 17:02:32
关于HTML5离线存储原理及实现,笔者找到一篇介绍离线缓存的,感觉比之前看到的解释的更透彻,新的知识点记录如下: 大家都知道Web App是通过浏览器来访问的,所以离线状态下是无法使用app的。其中web app中的一些资源并不经常改变,不需要每次都向服务器发送请求。这时应运而生的离线缓存就显得尤为突出。通过把需要离线缓存储的文件列在一个manifest配置文件中。这样在离线情况下也可以使用app。 离线存储的manifest一般由三个部分组成: 1.CACHE:表示需要离线存储的资源列表,由于包含manifest文件的页面将被自动离线存储,所以不需要把页面自身也列出来。 2.NETWORK:表示在它下面列出来的资源只有在在线的情况下才能访问,他们不会被离线存储,所以在离线情况下无法使用这些资源。尚学堂•百战程序员陈老师指出,如果在CACHE和NETWORK中有一个相同的资源,那么这个资源还是会被离线存储,也就是说CACHE的优先级更高。 3.FALLBACK:表示如果访问第一个资源失败,那么就使用第二个资源来替换他,比如上面这个文件表示的就是如果访问根目录下任何一个资源失败了,那么就去访问offline.html。使用HTML5,通过创建cache manifest文件,可轻松创建web应用的离线版本。 HTML5引入了应用程序缓存,这意味着web应用可进行缓存

一个缓存使用的思考:Spring Cache VS Caffeine 原生 API

人盡茶涼 提交于 2019-12-09 16:21:00
最近在学习本地缓存发现,在 Spring 技术栈的开发中,既可以使用 Spring Cache 的注解形式操作缓存,也可用各种缓存方案的原生 API。那么是否 Spring 官方提供的就是最合适的方案呢?那么本文将通过一个案例来为你揭晓。 Spring Cache Since version 3.1, the Spring Framework provides support for transparently adding caching to an existing Spring application. The caching abstraction allows consistent use of various caching solutions with minimal impact on the code. Spring Cache 和 slf4j、jdbc 类似,是由 Spring Framwork 提供的一个缓存抽象层,可以接入各种缓存解决方案来进行使用,通过 Spring Cache 的集成,我们只需要通过一组注解来操作缓存就可以了。目前支持的有 Generic 、 JCache (JSR-107) 、 EhCache 2.x 、 Hazelcast 、 Infinispan 、 Couchbase 、 Redis 、 Caffeine 、 Simple

HTML5 应用程序缓存

泪湿孤枕 提交于 2019-12-09 15:21:33
使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 应用程序缓存为应用带来三个优势: 离线浏览 - 用户可在应用离线时使用它们 速度 - 已缓存资源加载得更快 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。 浏览器支持 Internet Explorer 10, Firefox, Chrome, Safari 和 Opera 支持应用程序缓存. HTML5 Cache Manifest 实例 下面的例子展示了带有 cache manifest 的 HTML 文档(供离线浏览): <!DOCTYPE HTML> <html manifest="demo.appcache"> <body> The content of the document...... </body> </html> Cache Manifest 基础 如需启用应用程序缓存,请在文档的<html> 标签中包含 manifest 属性: <!DOCTYPE HTML> <html manifest="demo .appcache "> ... </html> 每个指定了 manifest

Firefox与IE浏览器缓存的两个重要区别

时光毁灭记忆、已成空白 提交于 2019-12-09 15:17:50
简介 详细介绍了firefox的缓存与IE的区别,如何设置服务响应头让两者缓存行为一致. 当你建立好一个WEB服务后,通常有两个类型的缓存需要配置: 设置网站有更新的时候html资源马上过期,以便正在浏览的用户可以很快地得到更新. 设置所有其它资源(例如图片,CSS,javascript脚本)在一定时间后过期. 这个缓存方案涵盖 Two Simple Rules for HTTP Caching 文章中提到关于如何处理更新的一些思想. 现在 HttpWatch 6.0 支持Firefox了,我们想探讨一下Firefox在处理缓存上与IE有些什么不同.设置较长过期时间的使用方式(上面第二条)仍可以直接用于Firefox,但配置1在两者之间还是存在细微差别的. 在 之前的文章 中,我们把第一条划分为: 某些时候动态HTML页面需要即时从服务器更新以备随时显示-甚至是使用后退按钮的时候.例如,显示银行帐号的状态或在线订单. 静态HTML页面,比如联系,FAQs或者站点地图等页面,如果它们设置了Last-Modified响应头,允许浏览器在需要的时候重新校验,就可以利用到缓存. 本文剩下部分探讨了Firefox中影响HTML页面缓存的两个重要不同点. 1. 使用no-cache防止Firefox缓存无效 你可以简单地设置如下的响应头预防IE缓存任何东西: Cache-Control: no

一个缓存使用案例:Spring Cache VS Caffeine 原生 API

若如初见. 提交于 2019-12-09 13:40:12
最近在学习本地缓存发现,在 Spring 技术栈的开发中,既可以使用 Spring Cache 的注解形式操作缓存,也可用各种缓存方案的原生 API。那么是否 Spring 官方提供的就是最合适的方案呢?那么本文将通过一个案例来为你揭晓。 Spring Cache Since version 3.1, the Spring Framework provides support for transparently adding caching to an existing Spring application. The caching abstraction allows consistent use of various caching solutions with minimal impact on the code. Spring Cache 和 slf4j、jdbc 类似,是由 Spring Framwork 提供的一个缓存抽象层,可以接入各种缓存解决方案来进行使用,通过 Spring Cache 的集成,我们只需要通过一组注解来操作缓存就可以了。目前支持的有 Generic 、 JCache (JSR-107) 、 EhCache 2.x 、 Hazelcast 、 Infinispan 、 Couchbase 、 Redis 、 Caffeine 、 Simple