前记:映像中之前工作的时候缓存用的是Tair。 最近看到很多关于Redis缓存的blog。于是在网上搜集了一些资料,下面是整理的读书笔。
1. 为什么要用缓存?
why?由于程序直接访问数据库的时间成本很高的,使用缓存可以减少数据库的访问次数,提升程序的响应时间。同时还能降低数据的压力
when? 什么时候使用缓存? 不经常变化的数据;或者从源头读取费时费力的数据都可以放缓存,例如:
case 1: 程序多次访问数据库,但查询结果都相同,把查询结果放在缓存里;
case 2: 数据库访问的结果要进行很复杂费时的计算,把计算结果放在缓存里;
case 3: 网站上每个页面都需要的user id 信息,放在缓存里。
2. RDB的弊端
以下内容摘自 腾讯大数据_ 大型web系统数据缓存设计
1. 单表数据量太小: MySql 单表数据条数控制在 2000w条(20 million)
2. TPS太小 :通常情况下,MySql的Transaction Per Second只有1500
3. 响应时间: 通常情况下,MySql的响应时间在10ms以内,
3. 大型web 网站挑战
常见日均PV 千万 (200 million) 的大型web 网站挑战:
每个PV(page view) 所产生的数据库读写量可能要超出几倍,这种情况下