缓存的区别(摘抄于文章1)
缓存分为本地缓存和分布式缓存。以java为例,使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。
使用redis或memcached之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。缺点是需要保持redis或memcached服务的高可用,整个程序架构上较为复杂。
对比
| 静态变量缓存 | redis缓存 | |
|---|---|---|
| 本质区别 | 进程内共享 | 进程间共享 |
| 读取速度 | 本地读取,快 | 内存读取,较快,并发性强 |
| 持久化 | 随jvm销毁而消失 | 可持久化 |
| 并发性 | 好 | |
| 场景 | 单一 | 丰富数据结构及api |
| 过期机制 | 不支持 | 支持 |