1. 三级分类查询优化
使用示例:
- 利用 Redis 实现三级分类数据缓存
- 利用 Redisson 实现分布式,解决缓存一致性、缓存穿透、缓存雪崩和缓存击穿等问题
- 利用 SpringCache 缓存组件实现三级分类数据缓存,并解决缓存一致性问题
2. 上架商品检索功能开发
- 根据查询数据封装请求类,并构建 ES 的 DSL 检索语句
- 解析 ES 检索结果并封装成检索结果对象返回前端
笨鸟先飞
Spring 从 3.1 开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术, 并支持使用 JCache(JSR-107)注解简化我们开发;
Cache 接口为缓存的组件规范定义,包含缓存的各种操作集合。Cache 接 口 下 Spring 提 供 了 各 种 xxxCache 的 实 现 , 如 RedisCache , EhCacheCache , ConcurrentMapCache 等;
每次调用需要缓存功能的方法时,Spring 会检查检查指定参数的指定的目标方法是否已经被调用过。如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户,下次调用直接从缓存中获取。
使用 Spring 缓存抽象时我们需要关注以下两点:
ElasticSearch-high-level-client 是 java 操作 ElasticSearch 的一个客户端 API
1 | <properties> |
准备工作: 在 CentOs7 使用 Docker 安装 ElasticSearch 7.4.2
一个 tokenizer(分词器)接收一个字符流,将之分割为独立的 tokens(词元,通常是独立的单词),然后输出 tokens 流。 例如,whitespace tokenizer
遇到空白字符时分割文本。它会将文本 “Quick brown fox!” 分割 为 [Quick, brown, fox!]。 该 tokenizer(分词器)还负责记录各个 term(词条)的顺序或 position 位置(用于 phrase 短语和 word proximity 词近邻查询),以及 term(词条)所代表的原始 word(单词)的 start (起始)和 end(结束)的 character offsets(字符偏移量)(用于高亮显示搜索的内容)。 Elasticsearch 提供了很多内置的分词器,可以用来构建 custom analyzers(自定义分词器)。