01-Setnx+过期时间实现分布式锁 验证代码已放在 git:https://github.com/janycode/eelock.git 1. Redis分布式锁理论Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。设置成功,返回 1 。 设置失败,返回 0由于Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,命令是一 2021-02-18 15_分布式 > 03_分布式锁 #注解 #Redis #架构
11-IDEA-生成Javadoc外部文档 IDEA中,点击 Tools-> Generate JavaDoc,这样会打开生成 javadoc 文档的配置页面。 进行配置: 标注的是重要的部分,从上往下分别是配置 javadoc 的范围,输出文件夹路径以及命令行参数。 这里的命令行参数很重要,因为只有使用 utf-8 编码才能保证生成时可以正常处理中文字符,所以一定要加上: 1-encoding utf-8 -charset 2021-02-17 00_先利其器 > 01_Intellij IDEA #IDEA #javadoc #文档
02-ElasticSearch用法和IK分词器 官方网站:https://www.elastic.co/cn/elasticsearch/ 分词器:https://www.cnblogs.com/cjsblog/p/10327673.html 词频计算相关性:https://www.elastic.co/guide/en/elasticsearch/guide/current/relevance-intro.html ElasticSearc 2021-02-13 08_框架技术 > 09_Elasticsearch #ElasticSearch
03-ElasticSearch7基本操作 一、索引管理1.1 新建索引使用指定配置创建索引,这里指定主分片的数量为 3; 副本系数为 2,即每个分片两个副本;默认情况下主分片数量和副本系数都是 1。需要注意的是创建索引时,索引名称只能是小写,长度不能超过 255 个字符,同时尽量不要包含特殊字符,不能以 -,_,+ 等字符开头。 1234567PUT testindex{ "settings" : &# 2021-02-13 08_框架技术 > 09_Elasticsearch #ElasticSearch
04-ES Java REST Client 一、ES Client 简介1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RESTful style API这一层,这种客户端的连接方式是RESTful风格的,使用http的方式进行连接 3.2 Transport 连接 端口 9300 &am 2021-02-13 08_框架技术 > 09_Elasticsearch #ElasticSearch
12-BaseController BaseController.java1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 2021-02-04 21_代码片段 > 01_工具类 #工具类
01-Spring Validation注解参数校验 参考资料:Spring Boot 官网文档 《37. Validation》 参考资料:@Valid 与 @Validated 注解用法详解 Spring官方在SpringBoot文档中,关于参数校验(Validation)给出的解决方案是这样的: 使用 JSR-303 规范,直接利用注解进行参数校验。 JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validatio 2021-01-28 08_框架技术 > 02_Spring > 05_Validation #Spring #注解 #参数校验
03-Spring 事务嵌套+异常+传播行为分析 1. 无嵌套的正常事务123456public class C{ @Transactional public void a(){ //TODO }} 【结论】:出现异常,正常回滚。 原因: 事务的 ACID 特性中的 C,Consistency 一致性,事务内有操作失败时则数据将全部回滚到修改前的状态。 2. 方法 2021-01-22 08_框架技术 > 02_Spring > 04_Data #Spring #事务
06-短链系统 很多APP应用,会经常推荐一些商品给我们,什么猜你喜欢,重点推荐等业务。 推荐系统本质上就是一个信息过滤系统,通常分为:召回、排序、重排序这3个环节。 每个环节逐层过滤,最终从海量的物料库中筛选出几十个用户可能感兴趣的物品推荐给用户。 应用场景 基于用户维度的推荐: 根据用户的历史行为和兴趣进行推荐。 比如淘宝首页的猜你喜欢、抖音的首页推荐等。 基于物品维度的推荐: 根据用户当 2021-01-16 17_项目设计 > 01_业务设计 #系统设计 #架构设计
04-Stream流多级排序 1. 多字段排序1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950List<类> list; 代表某集合 /* 返回 对象集合以类属性1升序排序 */list.stream().sorted(Comparator.comparing(类::属性1)); 2021-01-09 02_编程语言 > 01_Java > 02_Java8 #Stream #排序 #Java8