11 2021 档案
摘要:1、初始化线程的四种方式 继承Thread 实现Runnable接口 实现Callable接口 + FutrueTask(可以拿到结果处理异常) 线程池 方式1和方式2:主进程无法获取线程的运算结果 方式3:主进程可以获取线程的运算结果,但是不利于控制服务器中的线程资源,会导致服务器资源耗尽 方式4
阅读全文
摘要:查询语句:包含模糊匹配,过滤(包括属性,分类,品牌,价格区间,库存),排序。分页、高亮、聚合这个查询语句只是为了方便自己查找,记录下 ES 的DSL语法GET product/_search { "query": { "bool": { "must": [ { "match": { "skuTitle": "iPhone" } } ], "filter": [ { "term": { "catal
阅读全文
摘要:1、简介 Spring 从 3.1 开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术; 并支持使用 JCache(JSR-107)注解简化我们开发 Cache 接口为
阅读全文
摘要:1、双写模式 2、失效模式 缺点:在删除缓存前,有请求读到缓存,那么读取到的数据就不是最新的 3、缓存数据一致性解决方案
阅读全文
摘要:1、加锁解决缓存击穿问题 1)本地锁: 使用同步代码块 public Map<String,List<Catalog2Vo>> getCatalogJsonFromDb() { //只要是同一把锁,就能锁住使用这个锁的所有线程 //synchronized (this) SpringBoot项目中所
阅读全文
摘要:1、高并发下缓存失效问题 — 缓存穿透 2、缓存雪崩 3、缓存击穿
阅读全文