缓存优化性能

应用服务器就是处理网站业务的服务器,网站的业务代码都部署在这里,是网站开发最复杂,变化最多的地方,优化手段主要有缓存、集群和异步等。

阿里P8架构师谈:Web前端、应用服务器、数据库SQL等性能优化总结
网站性能优化第一定律:优先考虑使用缓存优化性能。

缓存的本质是一个内存Hash表,网站应用中,数据缓存以一对Key,Value的形式存储在内存Hash表中。缓存主要用来存放那些读写比很高、很少变化的数据。

二八定律:80%的访问落在20%的数据上

使用缓存需要注意的问题:

  1. 把频繁修改的数据放入缓存。容易出现数据写入缓存后,应用还来不及读取缓存,数据就已经失效的情形,徒增系统负担。一般来说,数据的读写比在2:1以上,缓存才有意义。
  2. 没有热点的访问。 缓存使用的内存资源非常宝贵,只能将最新访问的数据缓存起来,而把历史数据清理出缓存。即缓存资源应该留给20%的热点数据。
  3. 数据不一致与脏读。 一般会对缓存设置失效时间,超过失效时间,就要从数据库重新加载。因此应用要忍受一定时间的数据不一致。另一种策略是数据更新时立即更新缓存,不过这也会带来更多的系统开销和事务一致性的问题。
  4. 缓存可用性。 业务发展到一定阶段时,缓存会承担大部分数据访问的压力,数据库已经习惯了有缓存的日子,所以当缓存服务器崩溃时,数据库会因为完全不能承受如此大的压力而宕机,进而导致整个网站不可用。这种情况被称作缓存雪崩,发生这种故障,甚至不能简单地重启缓存服务器和数据库服务器来恢复网站访问。 解决方式:1、缓存热备(当某台服务器宕机时,将缓存访问切换到热备服务器上。);2、缓存服务器集群。
  5. 缓存预热。 缓存中存放的是热点数据,热点数据是缓存系统用LRU对不断访问的数据筛选出来的,这个过程需要较长的时间。新启动的缓存系统没有任何数据,此时系统的性能和数据库负载都不太好。因此可以选择在启动缓存是就把热点数据预加载好。
  6. 缓存穿透。 因为不恰当的业务或恶意攻击,持续高并发地访问某一个不存在的数据,如果缓存不保存该数据,就会有大量的请求压力落在数据库上。简单的解决方式是把请求的不存在的数据也放进缓存,其value是null。
    转载地址:http://youzhixueyuan.com/web-front-end-application-database-performance-optimization.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值