(二)高并发压力测试调优篇——caffeine本地缓存调优

前言

在上一节内容中我们主要介绍了高并发请求下,mysql数据库的调优,其调优的主要原理是尽量减少数据库的IO操作,从而提高服务器的访问性能。在此基础上,本节内容是关于如何利用缓存,提高系统的并发访问能力。我们会首先在项目中集成caffeine本地缓存组件,通过jemeter压测工具验证本地缓存对高并发的影响。

正文

  • 添加caffeine和spring cache的pom依赖

    org.springframework.boot spring-boot-starter-cache com.github.ben-manes.caffeine caffeine 3.1.5
  • 在application.yml中配置caffeine缓存

    spring:
    cache:
    type: caffeine
    caffeine:
    spec: initialCapacity=100,maximumSize=500,expireAfterWrite=5m

  • 使用@EnableCaching注解启用缓存
  • 添加一个本地缓存测试用例

    @Cacheable(cacheNames = "user", key = "#p0")
    @Override
    public TpsUserEntity getUserByUsername(String username) {
    LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper()
    .eq(TpsUserEntity::getUsername, username);
    return this.getOne(lambdaQueryWrapper);
    }

  • 500用户,并发500的压测结果:吞吐量达到18000/sec

  • 500用户,并发1000的压测结果:吞吐量达到19000/sec
  • 500用户,并发2000的压测结果:吞吐量达到22000/sec

结语

由此可见,通过增加内存级的缓存能够大幅度提高接口的并发访问能力,对于高并发访问的接口,我们可以通过使用本地内存或者redis等内存级的数据库,提升接口的并发访问能力。

相关推荐
执笔论英雄2 小时前
【大模型推理】redis kv cache
数据库·redis·缓存
渣渣灰飞2 小时前
MySQL 系统学习 第六阶段:Redis + 缓存 + 高并发设计 第八章:Redis 高级应用
学习·mysql·缓存
渣渣灰飞2 小时前
MySQL 系统学习 第六阶段:Redis + 缓存 + 高并发设计 第十章:Redis 综合企业项目实战
学习·mysql·缓存
Alluxio2 小时前
重卡自动驾驶数据引擎升级,智加科技凭借Alluxio实现训练吞吐10倍跃迁
分布式·科技·机器学习·缓存·ai·自动驾驶·汽车
白露与泡影13 小时前
Redis 缓存实战:雪崩、穿透、击穿一次讲透
数据库·redis·缓存
snow@li19 小时前
Redis:数据库语法速查表 / 全景梳理
数据库·redis·缓存
Alluxio19 小时前
Alluxio + Anyscale Ray框架,实现跨区域训练数据读取速度20倍提升
人工智能·分布式·机器学习·缓存·ai
手握风云-1 天前
Redis:不只是缓存那么简单(十四)
redis·缓存
手握风云-2 天前
Redis:不只是缓存那么简单(十五)
数据库·redis·缓存
谙忆2 天前
图片CDN与边缘优化实战:缓存策略、图片处理型CDN与动态裁剪
java·spring·缓存