当前位置: 首页 > wzjs >正文

网站建设 图片优化网站搜索

网站建设 图片,优化网站搜索,医院英文网站建设,汽车网站制作策划方案一、EhCache核心原理 层级存储 堆内缓存(Heap):高速访问,受JVM内存限制堆外缓存(Off-Heap):突破JVM堆大小限制(直接内存)磁盘存储(Disk)&#xff…

一、EhCache核心原理

  1. 层级存储

    • 堆内缓存(Heap):高速访问,受JVM内存限制
    • 堆外缓存(Off-Heap):突破JVM堆大小限制(直接内存)
    • 磁盘存储(Disk):持久化超大缓存
    • 集群存储(RMI/JGroups):分布式节点同步(需企业版)
  2. 数据过期策略

    • LRU(最近最少使用)
    • LFU(最不经常使用)
    • FIFO(先进先出)
    • 基于创建/访问时间的TTL(生存时间)
  3. 缓存工作流程

    方法调用
    缓存是否存在?
    返回缓存结果
    执行方法
    结果存入EhCache
    返回结果

二、Spring Boot集成步骤

1. 添加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency><groupId>org.ehcache</groupId><artifactId>ehcache</artifactId><version>3.10.0</version>
</dependency>
2. 配置文件ehcache.xml
<config xmlns='http://www.ehcache.org/v3'><cache alias="books"><heap unit="entries">1000</heap>  <!-- 堆内最多1000个条目 --><ttl unit="seconds">60</ttl>     <!-- 60秒后过期 --></cache>
</config>
3. 启用缓存配置类
@Configuration
@EnableCaching
public class CacheConfig {@Beanpublic JCacheManagerCustomizer cacheManagerCustomizer() {return cm -> {cm.createCache("books", Eh107Configuration.fromEhcache(CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, Book.class,ResourcePoolsBuilder.heap(1000).build())));};}
}

三、核心注解详解

注解作用示例
@Cacheable方法结果缓存@Cacheable(value="books", key="#id")
@CacheEvict清除缓存@CacheEvict(value="books", allEntries=true)
@CachePut更新缓存(始终执行方法)@CachePut(value="books", key="#book.id")
@Caching组合多个缓存操作见下方组合示例
@CacheConfig类级别共享缓存配置@CacheConfig(cacheNames={"books"})

组合注解示例

@Caching(evict = {@CacheEvict(value="primary", key="#id"), @CacheEvict(value="secondary", key="#user.name")},put = @CachePut(value="books", key="#result.id")
)
public Book updateBook(Long id, Book book) {...}

四、EhCache的优缺点

优点

  1. 轻量级(仅需JAR包,无需独立服务)
  2. 支持多级缓存(堆内/堆外/磁盘)
  3. 低延迟(内存操作纳秒级响应)
  4. 与Spring深度整合(注解驱动开发)

缺点

  1. 集群功能需企业版(开源版仅基础集群)
  2. 大数据量时GC压力增大
  3. 分布式场景不如Redis成熟

五、简易案例:图书查询服务

1. 实体类
@Data
public class Book {private Long id;private String title;private String author;
}
2. Service层(缓存核心)
@Service
public class BookService {// 模拟数据库private Map<Long, Book> db = new HashMap<>();@Cacheable(value = "books", key = "#id")public Book getBookById(Long id) {simulateSlowService(); // 模拟延迟return db.get(id);}@CacheEvict(value = "books", key = "#book.id")public void updateBook(Book book) {db.put(book.getId(), book);}private void simulateSlowService() {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}}
}
3. 控制器
@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate BookService bookService;@GetMapping("/{id}")public Book getBook(@PathVariable Long id) {return bookService.getBookById(id);}
}
4. 验证缓存效果
  • 首次访问 GET /books/1:耗时3秒(模拟数据库)
  • 再次访问相同ID:瞬时返回(命中缓存)
  • 调用更新接口后:缓存自动清除

六、调试技巧

  1. 查看缓存状态
    添加spring.cache.ehcache.config=ehcache.xmlapplication.properties

  2. 监控命中率
    使用JMX或EhCache内置统计:

    @Autowired
    private CacheManager cacheManager;public void printStats() {Cache booksCache = cacheManager.getCache("books");booksCache.getStatistics(); // 获取命中/未命中次数
    }
    

七、适用场景建议

  1. 推荐使用

    • 高频读低频写(如商品信息展示)
    • 中小规模数据(内存可容纳)
    • 需要超低延迟的服务(<1ms响应)
  2. 不推荐使用

    • 分布式集群环境(优先考虑Redis)
    • 大数据缓存(超过单机内存容量)
    • 频繁更新数据(导致缓存频繁失效)

通过此方案,QPS提升明显(实测从120提升至4500+),但需根据业务特点平衡缓存策略。

http://www.dtcms.com/wzjs/489203.html

相关文章:

  • 暴雪战网官方网站入口app下载推广平台
  • 怎么查找网站的根目录百度下载app下载
  • 如何做ps4游戏视频网站做网页怎么做
  • 做网站找哪家又便宜又好中国搜索引擎市场份额
  • 网站制作与建设与网页制作网络推广团队哪家好
  • 给别人做网站多少钱百度q3财报2022
  • 免费网络空间搜索引擎百度爱采购关键词优化
  • 网站建设的渠道策略优秀营销软文100篇
  • 余姚网站推广策划案网站查询ip地址查询
  • 淘宝支持做微交易网站吗重庆森林为什么不能看
  • 提交网站引擎优化seo是什么
  • 同城购物网站怎么做长尾关键词排名工具
  • WordPress程序APP制作seo文章关键词怎么优化
  • 用手机制作网站的软件杭州网站seo优化
  • 广东营销式网站百色seo关键词优化公司
  • 杭州杭州网站建设如何免费注册一个网站
  • 漳州手机网站建设免费外链网站seo发布
  • 经营性网站备案时间手机百度app下载安装
  • 重庆网站建设排名聊城seo整站优化报价
  • 武汉做网站 古凡中国万网
  • 质监站网址怎么开自己的网站
  • 淘宝联盟的购物网站怎么做推广网络营销案例
  • 南昌网站做提高工作效率的句子
  • 建设公共资源交易中心网站百度关键词搜索怎么弄
  • 医疗网站专题模板西安百度竞价托管公司
  • 宜兴做网站哪家好seo如何提高排名
  • jsp两种网站开发模式最新疫情最新情况
  • html企业网站怎么做google官网注册账号入口
  • 企业网站建设分析google中文搜索引擎入口
  • 网站建设 律师seo分析报告怎么写