分布式缓存的应用场景、选型比较、问题和挑战
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 为什么要使用分布式缓存 高并发环境下,例如典型的淘宝双11秒杀,几分钟内上亿的用户涌入淘宝,这个时候如果访问不加拦截,让大量的读写请求涌向数据库,由于磁盘的处理速度与内存显然不在一个量级,服务器马上就要宕机。从减轻数据库的压力和提高系统响应速度两个角度来考虑,都会在数据库之前加一层缓存,访问压力越大的,在缓存之前就开始CDN拦截图片等访问请求。 并且由于最早的单台机器的内存资源以及承载能力有限,如果大量使用本地缓存,也会使相同的数据被不同的节点存储多份,对内存资源造成较大的浪费,因此,才催生出了分布式缓存。 分布式缓存应用场景 页面缓存:用来缓存Web 页面的内容片段,包括HTML、CSS 和图片等。 应用对象缓存:缓存系统作为ORM 框架的二级缓存对外提供服务,目的是减轻数据库的负载压力,加速应用访问。 解决分布式Web部署的session同步问题 状态缓存:缓存包括Session会话状态及应用横向扩展时的状态数据等,这类数据一般是难以恢复的,对可用性要求较高,多应用于高可用集群。 并行处理:通常涉及大量中间计算结果需要共享。 云计算领域提供分布式缓存服务。 分布式缓存比较:Memcache VS Redis 1、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset