为什么用本地缓存
本地缓存作用就是提高系统的运行速度,是一种空间换时间
例子
下订单时,页面需要选择 省、市、县,发送到后端的是 省、市、县 的 id值,在后端,需要通过关联查询得到 省、市、县 的 具体名字,这里就需要用到 查询
传统方式的缺点
从 MySQL 查询,有以下缺点:
查询数据库,就需要读取硬盘,速度会慢
下订单操作会很频繁,所以这里需要频繁查询
省、市、县的 具体名字,增加数据库负担由于
省、市、县的 id 和 名字 几乎不会改变,每次查询数据库就没有必要
本地缓存
将 省、市、县 的 id 和 名字,放入到本地缓存(内存)中,以后不需要查询 MySQL,只需要到本地缓存中查找即可
为什么不用缓存数据库?
为什么不用 Redis、Memcache 等缓存数据库?
因为这些都属于是 分布式缓存数据库,在下面场景下不需要分布式缓存:
- 数据量小
- 访问频繁
- 很少改变
共存
Redis是一种优秀的分布式缓存数据库,但需要通过网络访问 redis,有时网络可能会造成瓶颈,所以下面数据库、redis、本地缓存会共存:
DB + Redis + LocalCache = 高效存储,高效访问
本地缓存的实现
简单实现
将数据放入到 Map 中,但过于简单
Google Guava Cache
详见 链接
参考:
https://www.jianshu.com/p/38bd5f1cf2f2
https://juejin.cn/post/7014459433077964808