数据缓存分为:静态缓存 和 动态缓存
1.静态缓存:属于文件缓存,缓存HTML,CSS,图片,JS文件,采用cdn(文件分化网络)策略。
静态缓存是浏览器来实现,每一次发送http请求之后,例如一个图片,如果请求包里面没有IF_MODIFIED_SINCE属性,就会在应答包里面带上LAST_MODIFIED的属性,值是GTM时间。在下一次重复再请求这个图片的时候,请求包就会带上IF_MODIFIED_SINCE属性,然后对比LAST_MODIFIED是否相同。另外一个判断方式是ETAG,同样的逻辑,不过对比的是文件里面的内容哈希后的值。
2.动态缓存:属于内存缓存,主要缓存一些变动的数据,例如经常需要检索的数据库数据内容,把它放在内存中,获取速度更快。
其中可以用到一些组件来实现,例如memcached(分布式缓存系统),所有的内容都是以键值对的方式存储。“键”有很多种,例如可以用sql哈希后的值作为“键”,值就是select后的内容。