如何巧妙运用作为高并发系统支柱的缓存,让它不再是简单技术?
- 内容介绍
- 文章标签
- 相关推荐
本文共计6459个文字,预计阅读时间需要26分钟。
在服务端开发中,缓存策略常被用作提升系统性能的关键手段。实践中,缓存策略需具备一定普适性,但并非绝对适用。需结合具体项目需求与场景,进行综合权衡与考量。
在服务端开发中,缓存常常被当做系统性能扛压的不二之选。在实施方案上,缓存使用策略虽有一定普适性,却也并非完全绝对,需要结合实际的项目诉求与场景进行综合权衡与考量,进而得出符合自己项目的最佳实践。
缓存使用的演进
现有这么一个系统:
一个互动论坛系统,用户登录系统之后,可以在论坛上查看帖子列表、查看帖子详情、发表帖子、评论帖子、为帖子点赞等操作。
系统中所有的配置数据与业务数据均存储在数据库中。随着业务的发展,注册用户量越来越多,然后整个系统的响应速度也越来越慢,用户体验越来越差,用户逐渐出现流失。
本地缓存的牛刀小试
为了挽救这一局面,开发人员需要介入去分析性能瓶颈并尝试优化提升响应速度,并很快找到响应慢的瓶颈在数据库的频繁操作,于是想到了使用缓存来解决问题。
于是,开发人员在项目中使用了基于接口维度的短期缓存,对每个接口的请求参数(帖子ID)与响应内容缓存一定的时间(比如1分钟),对于相同的请求,如果匹配到缓存则直接返回缓存的结果即可,不用再次去执行查询数据库以及业务维度的运算逻辑。
JAVA中有很多的开源框架都有提供类似的能力支持,比如Ehcache或者Guava Cache、Caffeine Cache等,可以通过简单的添加注解的方式就实现上述需要的缓存效果。
本文共计6459个文字,预计阅读时间需要26分钟。
在服务端开发中,缓存策略常被用作提升系统性能的关键手段。实践中,缓存策略需具备一定普适性,但并非绝对适用。需结合具体项目需求与场景,进行综合权衡与考量。
在服务端开发中,缓存常常被当做系统性能扛压的不二之选。在实施方案上,缓存使用策略虽有一定普适性,却也并非完全绝对,需要结合实际的项目诉求与场景进行综合权衡与考量,进而得出符合自己项目的最佳实践。
缓存使用的演进
现有这么一个系统:
一个互动论坛系统,用户登录系统之后,可以在论坛上查看帖子列表、查看帖子详情、发表帖子、评论帖子、为帖子点赞等操作。
系统中所有的配置数据与业务数据均存储在数据库中。随着业务的发展,注册用户量越来越多,然后整个系统的响应速度也越来越慢,用户体验越来越差,用户逐渐出现流失。
本地缓存的牛刀小试
为了挽救这一局面,开发人员需要介入去分析性能瓶颈并尝试优化提升响应速度,并很快找到响应慢的瓶颈在数据库的频繁操作,于是想到了使用缓存来解决问题。
于是,开发人员在项目中使用了基于接口维度的短期缓存,对每个接口的请求参数(帖子ID)与响应内容缓存一定的时间(比如1分钟),对于相同的请求,如果匹配到缓存则直接返回缓存的结果即可,不用再次去执行查询数据库以及业务维度的运算逻辑。
JAVA中有很多的开源框架都有提供类似的能力支持,比如Ehcache或者Guava Cache、Caffeine Cache等,可以通过简单的添加注解的方式就实现上述需要的缓存效果。

