我们可以把分布式缓存(Distributed Cache) 看作是一种内存数据库的服务,它的最终作用就是提供缓存数据的服务。
如下图所示,就是一个简单的使用分布式缓存的架构图。我们使用 Nginx 来做负载均衡,部署两个相同的服务到服务器,两个服务使用同一个数据库和缓存。
本地缓存优点:
本地的缓存的优势是低依赖,比较轻量并且通常相比于使用分布式缓存要更加简单。
本地的缓存缺点:
1.本地缓存对分布式架构支持不友好:数据无法共享
2.容量跟随服务器限制明显。
分布式缓存优点:
1.缓存部署在一台单独的服务器上
2.缓存数据共享:即使同一个相同的服务部署在再多机器上,也是使用的同一份缓存,其实就一种数据库,单独放在了一个服务器上,然后其他的服务都去这个缓存数据库拿数据(个人理解)。
3.单独的分布式缓存服务的性能、容量和提供的功能都要更加强大
分布式缓存缺点:
1.需要为分布式缓存引入额外的服务比如 Redis 或 Memcached
2.需要单独保证 Redis 或 Memcached 服务的高可用。
分布式缓存主要解决的是单机缓存的容量受服务器限制并且无法保存通用的信息。因为,本地缓存只在当前服务里有效,比如如果你部署了两个相同的服务,他们两者之间的缓存数据是无法共同的。