SlideShare a Scribd company logo
1 of 46
Download to read offline
高性能Web应用
缓存架构设计浅谈
Robbin Fan
Thursday, August 4, 11
高性能Web应用特征
• 大规模,高并发的访问请求
• 服务的高可用性
• 平滑的deployment
• 良好的可伸缩性
Thursday, August 4, 11
特殊应用场景
• 长连接
• Web chat,Web game
• 网络IO资源消耗型,非CPU消耗型
• EventMachine,Twisted, Node.js
Thursday, August 4, 11
高性能Web应用
是架构问题,不是
Rails框架问题
Thursday, August 4, 11
Constraint is liberty
Thursday, August 4, 11
JavaEye统计数据
• 3,000,000+ Rails dynamic requests per day
• 15,000,000+ HTTP requests per day
• 600+ HTTP requests/s on peak time
• 1,000,000+ full-text search per day
• 1400+ current connections/s on peak time
• 600 average Memcached get operations
• 150 average SQL queries per second
Thursday, August 4, 11
lighttpd
fastcgi(ruby)
Web Server
mysql
DB Server
memcached
SearchServer
PDF Creating
analytics
Thursday, August 4, 11
Web Server DB Server
CPU Peak < 60% CPU Peak < 25%
IO Wait < 5% IO Wait < 15%
Thursday, August 4, 11
Rails高性能Web之道
• 以REST的架构风格来编写Rails应用
• 从整体架构上设计各个层面缓存方案
• 消除架构上的各个单点性能瓶颈
• 多进程的分布式应用架构部署
Thursday, August 4, 11
REST
资源 操作+ = REST
Thursday, August 4, 11
REST
资源 操作+ = REST
URL
Thursday, August 4, 11
REST
资源 操作+ = REST
URL +
Thursday, August 4, 11
REST
资源 操作+ = REST
URL HTTP+
Thursday, August 4, 11
REST
资源 操作+ = REST
URL HTTP+ =
Thursday, August 4, 11
REST
资源 操作+ = REST
URL HTTP+ = Web
Thursday, August 4, 11
REST架构的设计准则
• 网络上的所有事物都被抽象为资源(resource)
• resource = data + representation
• 每个资源对应⼀一个唯⼀一的资源标识(resource identifier)
• resource identifier = URL
• 通过连接器(generic connector interface)对资源进行操作
• generic connector = HTTP Procotol (GET/POST/PUT/DELETE)
• 对资源的各种操作不会改变资源标识
• 对资源的GET操作具有幂等性,不改变资源的状态
• 所有的操作都是无状态的(stateless)
Thursday, August 4, 11
REST的实践用途
• 确保Web请求不会产生负作用
• 对内容型网站提供了最好的SEO效果
• 利用HTTP协议实现浏览器端缓存
• 大型系统的互操作标准接口,实现大型
系统的可扩展性和可伸缩性
Thursday, August 4, 11
HTTP语义被混淆
<a href=“/delete_user/1”>Delete User</a>
<a href=“/users/1”>Delete User</a>
Thursday, August 4, 11
基于HTTP的资源缓存
Etag "12523074“
Last-Modified Thu, 29 May 2010 09:43:46 GMT
/blog/123
/blog/123
If-Modified-Since Thu, 29 May 2010 09:43:46 GMT
If-None-Match "12523074 "
304 Not Modified
Thursday, August 4, 11
JavaEye的资源
• 新闻文章
• 论坛主题贴
• 博客文章
• RSS订阅
• ...... (所有经常被访问的资源都可以缓存)
Thursday, August 4, 11
def news
fresh_when(:last_modified => News.last.created_at, :etag => News.last)
end
@blogs = @blog_owner.last_blogs
@hash = @blogs.collect{|b| {b.id => b.post.modified_at.to_i +
b.posts_count}}.hash
if stale?(:last_modified => (@blog_owner.last_blog.post.modified_at ||
@blog_owner.last_blog.post.created_at), :etag => @hash)
render :template => "blog"
end
def board
@topics = @forum.topics.paginate...
if logged_in? || stale?(:last_modified =>
@topics[0].last_post.created_at, :etag => @topics.collect{|t| {t.id =>
t.posts_count}}.hash)
@announcements = (params[:page] || 1).to_i == 1 ?
Topic.find :all, :conditions...
render :action => 'show'
end
end
Thursday, August 4, 11
def show
@topic = Topic.find params[:id]
user_session.update_....... if logged_in?
Topic.increment_counter(...) if ......
@posts = @topic.post_by_page params[:page]
posts_hash = @posts.collect{|p| {p.id => p.modified_at}}.hash
topic_hash = @topic.forum_id + @topic.sys_tag_id.to_i + @topic.title.hash +
@topic.status_flag.hash
ad_hash = ... (广告的hash算法,略)
if logged_in? || stale?(:etag => [posts_hash, topic_hash, ad_hash])
render
end
end
def topic
@topic = Topic.find(params[:id])
unless logged_in?
if request.not_modified?(5.days.ago)
head :not_modified
else
response.last_modified = Time.now
end
end
end
Thursday, August 4, 11
Effect
• 30,000 304 status responses per day
Thursday, August 4, 11
基于Web的简单架构
数据库应用服务器Web服务器
存储设备
浏览器
Web应用架构
操作系统的文件系统
Thursday, August 4, 11
缓存系统的分层架构
• 操作系统磁盘缓存: 减少磁盘机械操作
• 数据库缓存 : 减少文件系统I/O
• 应用程序缓存 : 减少数据库查询
• Web服务器缓存 : 减少应用服务器请求
• 客户端浏览器缓存 : 减少对网站的访问
Thursday, August 4, 11
⼀一个误区
• n+1条SQL真的是低性能的吗?
• 减少磁盘I/O才是数据库优化的终极之道
Thursday, August 4, 11
2007.02
• 把posts表的大字段剥离出来
• posts表的select count操作从80秒减少到
0.1秒
Thursday, August 4, 11
posts表
• posts(id, ..., body)
• 磁盘存储空间6GB
Thursday, August 4, 11
剥离后posts表
• posts(id, post_text_id,...) 210MB
• post_texts(id, body) 6GB
Thursday, August 4, 11
Thursday, August 4, 11
应用缓存概述
• 对象缓存
• 查询缓存
• 页面缓存
• 动态页面静态化(page cache)
• 页面片段缓存(frgment cache)
• 基于REST资源的缓存
Thursday, August 4, 11
对象缓存原则
• 数据库表的设计要细颗粒度
• 把有冗余字段的大表拆分为n个互相外键
关联的小表
• ORM的性能瓶颈不在于表关联,而在于
大表的全表扫描
• 尽量避免join查询,多制造n+1条SQL
Thursday, August 4, 11
对象缓存的意义
• Web应用很容易通过群集方式实现横向
扩展,系统的瓶颈往往出现在数据库
• 数据库的瓶颈往往出现在磁盘IO读写
• 因此要避免数据库的全表扫描和大表的
数据扫描操作
• 如何避免:拆表和臭名昭著的n+1条SQL
Thursday, August 4, 11
山寨cache plugin
• 基于Rails Cache的简单封装,仅60行代码
• 可以自动实现对象缓存的管理,n:1关系
的缓存,但不支持1:n集合缓存
• memcached缓存命中率超过96%
Thursday, August 4, 11
memcached统计信息
Thursday, August 4, 11
memcached统计信息
Thursday, August 4, 11
cache_money
• 出自twitter开发团队之手
• 可能是目前最强大的ruby cache框架
• 支持分页查询缓存,支持条件查询缓存
Thursday, August 4, 11
页面片段缓存
• JavaEye大量使用页面片段缓存
• 网站首页、新闻频道、个人博客左边导
航条等等
• 可以有效降低ruby应用的负载
Thursday, August 4, 11
JavaEye遇到的问题
• ruby负载远远超过db,Web Server的load
是DB的两倍
• 单纯对象缓存不能减轻ruby的负载
Thursday, August 4, 11
ruby的性能问题
• ruby的正则表达式运算性能很糟糕
• erb的性能也不好
• 大量字符串运算性能差
• 解决之道:用片段缓存降低ruby字符串
处理频率
Thursday, August 4, 11
不直接缓存post的内容,改为缓
存post内容生成的html片段
Thursday, August 4, 11
不直接缓存post的内容,改为缓
存post内容生成的html片段
Thursday, August 4, 11
JavaEye的缓存参考
• memcached缓存命中率96%
• cache get : sql query = 4 : 1
Thursday, August 4, 11
在Rails之外寻求方案
• long-term request设置timeout
• SQF Dispatcher (short queue first)
• 用memcached实现计数器功能
• 用Redis的Set实现BlackList
• 用Redis的List数据结构实现高性能队列
• crontab和 ``实现异步操作
Thursday, August 4, 11
`curl "http://blogsearch.google.com/ping?
name=#{CGI::escape(@blog_owner.blog_name
|| @blog_owner.name + '的博客')}
&url=#{CGI::escape
blog_homepage_url(@blog_owner)}
&changesURL=#{CGI::escape(blog_homepage_u
rl(@blog_owner) + '/rss')}" > /dev/null
2>&1 &`
Thursday, August 4, 11
ip_counter = Rails.cache.increment(request.remote_ip)
if !ip_counter
Rails.cache.write(request.remote_ip, 1, :expires_in => 30.minutes)
elsif ip_counter > 2000
crawler_counter = Rails.cache.increment("crawler/
#{request.remote_ip}")
if !crawler_counter
Rails.cache.write("crawler/#{request.remote_ip}", 1, :expires_in
=> 10.minutes)
elsif crawler_counter > 50
BlackList.add(ip_sec)
render :file => "#{RAILS_ROOT}/public/403.html", :status => 403
and return false
end
render :template => 'test', :status => 401 and return false
end
Thursday, August 4, 11

More Related Content

What's hot

ASUSTOR NAS AS5 AS7 Rack mount business SMB
ASUSTOR NAS AS5 AS7 Rack mount business SMBASUSTOR NAS AS5 AS7 Rack mount business SMB
ASUSTOR NAS AS5 AS7 Rack mount business SMBFreddie Huang
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Nginx深度開發與客制化
Nginx深度開發與客制化Nginx深度開發與客制化
Nginx深度開發與客制化Joshua Zhu
 
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版XiaoJun Hong
 
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用Lorex L. Yang
 
大规模数据库存储方案
大规模数据库存储方案大规模数据库存储方案
大规模数据库存储方案XiaoJun Hong
 
浅谈数据库优化
浅谈数据库优化浅谈数据库优化
浅谈数据库优化Sky Jian
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计notes4mark
 
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统美团点评技术团队
 
对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现Lixun Peng
 
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践jackbillow
 
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术团队
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011Yiwei Ma
 
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化XiaoJun Hong
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事freezr
 
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题XiaoJun Hong
 
OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案freezr
 
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]Michael Zhang
 

What's hot (20)

ASUSTOR NAS AS5 AS7 Rack mount business SMB
ASUSTOR NAS AS5 AS7 Rack mount business SMBASUSTOR NAS AS5 AS7 Rack mount business SMB
ASUSTOR NAS AS5 AS7 Rack mount business SMB
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Nginx深度開發與客制化
Nginx深度開發與客制化Nginx深度開發與客制化
Nginx深度開發與客制化
 
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版
 
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
 
大规模数据库存储方案
大规模数据库存储方案大规模数据库存储方案
大规模数据库存储方案
 
浅谈数据库优化
浅谈数据库优化浅谈数据库优化
浅谈数据库优化
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计
 
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统
 
对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现
 
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
 
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
 
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题
 
OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案
 
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
 

Viewers also liked

Lucites | The Corporate Presence | Deal Toys
Lucites | The Corporate Presence | Deal ToysLucites | The Corporate Presence | Deal Toys
Lucites | The Corporate Presence | Deal Toysthecorporatepresence
 
Year 9, issue 339
Year 9, issue 339Year 9, issue 339
Year 9, issue 339VIJAY NEWS
 
Pendekatan fakta dan pendekatan konsep
Pendekatan fakta dan pendekatan konsepPendekatan fakta dan pendekatan konsep
Pendekatan fakta dan pendekatan konsepZuha Farhana
 
Poster vocacional enero- Secundaria y Preparatoria
Poster vocacional enero- Secundaria y PreparatoriaPoster vocacional enero- Secundaria y Preparatoria
Poster vocacional enero- Secundaria y PreparatoriaCesar Flores
 
Deliberative/instrumental actions vs phronetic actions in learning digital en...
Deliberative/instrumental actions vs phronetic actions in learning digital en...Deliberative/instrumental actions vs phronetic actions in learning digital en...
Deliberative/instrumental actions vs phronetic actions in learning digital en...emabardo
 
Обзор проектов по направлению развитие дополнительного образования
Обзор проектов по направлению развитие дополнительного образованияОбзор проектов по направлению развитие дополнительного образования
Обзор проектов по направлению развитие дополнительного образованияSamara Strategia
 
Presentacion tecresa proteccion pasiva export español argelia
Presentacion tecresa proteccion pasiva export español argeliaPresentacion tecresa proteccion pasiva export español argelia
Presentacion tecresa proteccion pasiva export español argeliaMario Camino
 
ความรู้เบื้องต้นเกี่ยวกับกฎหมายอาญา
ความรู้เบื้องต้นเกี่ยวกับกฎหมายอาญาความรู้เบื้องต้นเกี่ยวกับกฎหมายอาญา
ความรู้เบื้องต้นเกี่ยวกับกฎหมายอาญาChalermwut Sarakij
 
Mandela - Maestria negocjacji
Mandela - Maestria negocjacjiMandela - Maestria negocjacji
Mandela - Maestria negocjacjiLukasz Laniecki
 
Taller amasando el color
Taller amasando el colorTaller amasando el color
Taller amasando el colorCristinaMolinaA
 
survey on steel mill
survey on steel millsurvey on steel mill
survey on steel millPeaceMaker
 
dollarsprout in_merger_acquisition
dollarsprout in_merger_acquisitiondollarsprout in_merger_acquisition
dollarsprout in_merger_acquisitiondeepanshuoffpage
 
Cook_Presentation
Cook_PresentationCook_Presentation
Cook_Presentationcookmat7
 

Viewers also liked (20)

30112014
3011201430112014
30112014
 
Lucites | The Corporate Presence | Deal Toys
Lucites | The Corporate Presence | Deal ToysLucites | The Corporate Presence | Deal Toys
Lucites | The Corporate Presence | Deal Toys
 
Year 9, issue 339
Year 9, issue 339Year 9, issue 339
Year 9, issue 339
 
Allaince Media
Allaince MediaAllaince Media
Allaince Media
 
Pendekatan fakta dan pendekatan konsep
Pendekatan fakta dan pendekatan konsepPendekatan fakta dan pendekatan konsep
Pendekatan fakta dan pendekatan konsep
 
Poster vocacional enero- Secundaria y Preparatoria
Poster vocacional enero- Secundaria y PreparatoriaPoster vocacional enero- Secundaria y Preparatoria
Poster vocacional enero- Secundaria y Preparatoria
 
Deliberative/instrumental actions vs phronetic actions in learning digital en...
Deliberative/instrumental actions vs phronetic actions in learning digital en...Deliberative/instrumental actions vs phronetic actions in learning digital en...
Deliberative/instrumental actions vs phronetic actions in learning digital en...
 
Обзор проектов по направлению развитие дополнительного образования
Обзор проектов по направлению развитие дополнительного образованияОбзор проектов по направлению развитие дополнительного образования
Обзор проектов по направлению развитие дополнительного образования
 
Presentacion tecresa proteccion pasiva export español argelia
Presentacion tecresa proteccion pasiva export español argeliaPresentacion tecresa proteccion pasiva export español argelia
Presentacion tecresa proteccion pasiva export español argelia
 
ความรู้เบื้องต้นเกี่ยวกับกฎหมายอาญา
ความรู้เบื้องต้นเกี่ยวกับกฎหมายอาญาความรู้เบื้องต้นเกี่ยวกับกฎหมายอาญา
ความรู้เบื้องต้นเกี่ยวกับกฎหมายอาญา
 
Mandela - Maestria negocjacji
Mandela - Maestria negocjacjiMandela - Maestria negocjacji
Mandela - Maestria negocjacji
 
Call to Action
Call to ActionCall to Action
Call to Action
 
Taller amasando el color
Taller amasando el colorTaller amasando el color
Taller amasando el color
 
survey on steel mill
survey on steel millsurvey on steel mill
survey on steel mill
 
Services for business_2014
Services for business_2014Services for business_2014
Services for business_2014
 
dollarsprout in_merger_acquisition
dollarsprout in_merger_acquisitiondollarsprout in_merger_acquisition
dollarsprout in_merger_acquisition
 
Cook_Presentation
Cook_PresentationCook_Presentation
Cook_Presentation
 
Etapa preesquemática
Etapa preesquemáticaEtapa preesquemática
Etapa preesquemática
 
Media percobaan
Media percobaanMedia percobaan
Media percobaan
 
Kronika HNV-2013.g.
Kronika HNV-2013.g.Kronika HNV-2013.g.
Kronika HNV-2013.g.
 

Similar to 高性能Web应用缓存架构设计浅谈

Nodejs介绍
Nodejs介绍Nodejs介绍
Nodejs介绍myzykj
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发topgeek
 
Node js q-con
Node js q-conNode js q-con
Node js q-conq3boy
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构Sky Jian
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送yongboy
 
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送yongboy
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1YI-CHING WU
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CDChen-Tien Tsai
 
Elastic search
Elastic searchElastic search
Elastic searchSamchu Li
 
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0) 開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0) My own sweet home!
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫drewz lin
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應Justin Lin
 
淘宝搜索前端优化
淘宝搜索前端优化淘宝搜索前端优化
淘宝搜索前端优化Frank Xu
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Feng Yu
 
20111018 zhouchen share
20111018 zhouchen share20111018 zhouchen share
20111018 zhouchen sharezcbug
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用ericpi Bi
 

Similar to 高性能Web应用缓存架构设计浅谈 (20)

Nodejs介绍
Nodejs介绍Nodejs介绍
Nodejs介绍
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发
 
Node js q-con
Node js q-conNode js q-con
Node js q-con
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送
 
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
 
Hantuo openstack
Hantuo openstackHantuo openstack
Hantuo openstack
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
 
Elastic search
Elastic searchElastic search
Elastic search
 
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0) 開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
 
淘宝搜索前端优化
淘宝搜索前端优化淘宝搜索前端优化
淘宝搜索前端优化
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
20111018 zhouchen share
20111018 zhouchen share20111018 zhouchen share
20111018 zhouchen share
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用
 
OPM
OPMOPM
OPM
 

高性能Web应用缓存架构设计浅谈