一、简述
缓存,是解决性能问题的一种必不可少的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。缓存在很多系统和架构中都用广泛的应用,例如:
- CPU缓存
- 操作系统缓存
- 本地缓存
- 分布式缓存
- HTTP缓存
- 数据库缓存
等等,可以说在计算机和网络领域,缓存无处不在。可以这么说,只要有硬件性能不对等,涉及到网络传输的地方都会有缓存的身影。
二、高性能
用户第一次访问数据库中的某些数据,这个过程会比较慢。因为数据是从硬盘上读取的。将该用户访问的数据存在缓存中,这样后面的请求就去缓存中读取,使得请求能够迅速响应。操作缓存就是直接操作内存,所以速度相当快。如果数据库中的对应数据改变之后,同步改变缓存中相应的数据即可。
根据交互效果的不同,这个响应时间没有固定标准。在理想状态下,页面跳转需要在瞬间解决,对于页内操作则需要在刹那间解决。超过一弹指的耗时操作要有进度提示,并且可以随时中止或取消,这样才能给用户最好的体验。那么瞬间、刹那、一弹指具体是多少时间呢?根据《摩诃僧祗律》记载:
一刹那者为一念,二十念为一瞬,二十瞬为一弹指,二十弹指为一罗预,二十罗预为一须臾,一日一夜有三十须臾。
经计算,一瞬间为0.36 秒,一刹那有 0.018 秒,一弹指长达 7.2 秒。
三、高并发
直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以可以考虑把数据库中的部分数据转移到缓存中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。