在高并发场景下, 需要通过缓存来减少数据库的压力, 使得大量的访问进来能够命中缓存, 只有少量的需要到数据库层. 由于缓存基于内存, 可支持的并发量远远大于基于硬盘的数据库. 所以对于高并发设计, 缓存的设计是必不可少的一环.
那么我们为什么要设计缓存呢?
为什么要使用缓存呢? 源于人类的一个梦想, 就是多快好省的建设社会主义.
多快好省? 很多客户都这么要求, 但是作为具体做技术的你, 当然知道, 好就不能快, 多就没法省.
可是没办法, 客户都这样要求:
这个能不能便宜一点, 你咋这么贵呀, 你看人家都很便宜的.(您好, 这种打折的房间比较靠里, 是不能面向大海的)
你们的性能怎么这么差啊, 用你这个系统跑的这么慢, 你看人家广告中说速度能达到多少多少.(您好, 你如果买一个顶配的, 我们也是有这种性能的)
你们服务不行啊, 你就不能彬彬有礼, 穿着整齐, 送点水果瓜子啥的?(您好, 我们兰州拉面馆没有这项服务, 可以去对面的俏江南看一下)
这么贵的菜, 一盘就这么一点点, 都吃不饱, 就不能上一大盘么.(您好, 对面的兰州拉面 10 块钱一大碗)
怎么办呢? 劳动人民还是很有智慧的, 就是聚焦核心需求, 让最最核心的部分享用好和快, 而非核心的部门就多和省就可以了.
你可以大部分时间住在公司旁边的出租屋里面, 但是出去度假的一个星期, 选一个面朝大海, 春暖花开的五星级酒店.
你可以大部分时间都挤地铁, 挤公交, 跋涉 2 个小时从北五环到南五环, 但是有急事的时候, 你可以打车, 想旅游的时候, 可以租车.
你可以大部分时间都吃普通的餐馆, 而朋友来了, 就去高级饭店里面搓一顿.
在计算机世界也是这样样子的, 如图所示.
越是快的设备, 存储量越小, 越贵, 而越是慢的设备, 存储量越大, 越便宜.
对于一家电商来讲, 我们既希望存储越来越多的数据, 因为数据将来就是资产, 就是财富, 只有有了数据, 我们才知道用户需要什么, 同时又希望当我想访问这些数据的时候, 能够快速的得到, 双十一拼的就是速度和用户体验, 要让用户有流畅的感觉.
所以我们要讲大量的数据都保存下来, 放在便宜的存储里面, 同时将经常访问的, 放在贵的, 小的存储里面, 当然贵的快的往往比较资源有限, 因而不能长时间被某些数据长期霸占, 所以要大家轮着用, 所以叫缓存, 也就是暂时存着.
来源: http://www.jianshu.com/p/0dbeb22dcd1f