- 博客(89)
- 收藏
- 关注
原创 elasticsearch基操
创建所有PUT penn查询配置GET /penn/_settings配置mappingPOST /penn/_mapping?pretty{ "properties":{ "title":{ "type":"text", "store":"true" }, "description":{ "type":"text", "index":"false" ...
2020-09-29 16:25:44
331
原创 基于mybatis-plus实现自动参数赋值
比如说创建人、创建时间、更新人、更新时间等字段mybatis有一个默认的参数处理器DefaultParameterHandler它有一个默认子类MybatisDefaultParameterHandler结构是这样的注意这里有个insertFill和updateFill,其实就是我们需要的东西。利用他们可以在新增和更新的时候自动注入创建人创建时间更新人更新时间等字段。实现方式也简单1、定义一个类实现MetaObjectHander接口,重写insertFill和upd
2020-09-24 16:26:08
2391
原创 spring-data-elasticsearch进阶
假如我们有这样的sql查询场景SELECT * FROM myindex where (aa = 100 or bb = 100) and (cc = 66 and cc = 77)怎样在es里面操作?首先,上面的sql对应的json query 是这样的POST eas_question/_search{ "query": { "bool": { "must": [ { "bool": { "shou
2020-09-24 16:05:45
183
原创 elasticsearch和elasticHD安装
先下载:https://www.elastic.co/cn/downloads/elasticsearch解压:进入到es的bin目录下双击"elasticsearch.bat"下载elasticHDcmd进入elasticHD,运行ElasticHD -p 127.0.0.1:9800 在elasticHD,连接http://localhost:9200浏览器打开:http://127.0.0.1:9800/出现这个画面,表示一切正常,可以使用了...
2020-09-18 15:49:33
1000
2
原创 jmeter使用教程
下载jmeter1,进入bin目录,运行jmeter.bat2、右键Test Plan >>> add >>> Threads(Users) >>> Thread Group3,设置线程数量2004,新建Http Request Default add >>> onfig Element >>> Http Request Default5,设置协议、地址、端口号6,新建Ht.
2020-08-31 13:24:14
3061
原创 python2和python3的区别
1,没有了print函数python2.6之前print "fish"print ("fish") #注意print后面有个空格print("fish") #print()不能带有任何其它参数python2.6之后from __future__ import print_functionprint("fish", "panda", sep=', ')2,支持unicode(utf-8)3,除法运算python2整数相除的结果是一个整数,把小数部分完全忽略掉;pyth
2020-08-31 11:35:06
156
原创 Linux基操
目录操作使用 mkdir 命令创建目录mkdir $HOME/testFolder使用 cd 命令切换目录cd $HOME/testFolder使用 cd ../ 命令切换到上一级目录cd ../使用 mv 命令移动目录mv $HOME/testFolder /var/tmp使用 rm -rf 命令删除目录rm -rf /var/tmp/testFolder使用 ls 命令查看 /etc 目录下所有文件和文件夹ls /etc文件操作创建文件touch ~/testFile执
2020-08-05 12:29:26
196
原创 sql进阶 如何利用group_concat, find_in_set, exists解决mysql一对多关联条件查询的问题
一直test1,test2,test3三张表,test2是test1和test3的关联表test1test2test3题目一:查询所有test1,并查询test1关联的所有b_idSELECT t1.id, t1.name, GROUP_CONCAT(t2.`b_id` ORDER BY t2.id ) AS bids FROM test1 t1 LEFT JOIN test2 t2 ON t2.`a_id` = t1.`id` WHERE 1 = 1 GROU
2020-07-10 15:44:43
772
原创 elasticsearch安装教程
下载地址https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-2-4选择zip。解压到磁盘:D:\dev\elasticsearch-6.2.4cd bin双击运行elasticsearch.bat在浏览器打开http://127.0.0.1:9200如果出现上面这个页面,则表...
2019-11-05 10:44:01
900
原创 java从html中提取图片地址链接
使用正则表达式:1、先提取src到最近一个双引号(也可以是单引号)2、提取http到最近一个图片格式注意,提取的时候会包括末尾匹配!方法: private List<String> getIMG(String detail) { String regex = "src=\"(.*?)\"";; List<String&...
2019-11-05 09:47:38
1148
原创 多线程和信号量Semaphore
信号量Semaphore是一个并发工具类,用来控制可同时并发的线程数,其内部维护了一组虚拟许可,通过构造器指定许可的数量,每次线程执行操作时先通过acquire方法获得许可,执行完毕再通过release方法释放许可。如果无可用许可,那么acquire方法将一直阻塞,直到其它线程释放许可。比如说我们现在要处理一批订单,(如下单,取消,或者对账),订单量比较多,才用多线程处理先创...
2019-08-28 15:41:30
244
原创 docker基操(mysql、Redis)
// 搜索mysql的镜像信息$ docker search mysql // 从仓库拉取mysql,mysql:tag 后面可以跟标签得到指定版本,不加默认为lastest$ docker pull mysql // 从镜像生成容器,注意mysql需要指定登录的密码,以及通过-p 映射端口,必须要映射端口在能才物理机中访问到服务$ docker run --name mysq...
2019-08-12 15:21:19
382
原创 mysql 执行计划
explain + sqlType类型及区别type 说明 ALL 全数据表扫描 index 全索引表扫描 RANGE 对索引列进行范围查找 INDEX_MERGE 合并索引,使用多个单列索引搜索 REF 根据索引查找一个或多个值 EQ_REF 搜索时使用primary key 或 unique类型 CONST ...
2019-08-12 14:21:20
106
原创 ThreadLocal原理
ThreadLocal用于保存线程的共享变量变量的类型可以多样,通过泛型来指定ThreadLocal<Object>ThreadLocal有get、set、remove等函数,还有一个ThreadLocalMap内部类,这个是类是核心代码结构:看ThreadLocal源码,以set为例 public void set(T value) { ...
2019-04-22 16:50:09
185
原创 mongodb基操
mongodb是属于nosql,在介绍之前还是要mark一下RDBMS和NOSQL的区别。RDBMS主要存储结构化的数据,数据主要存储在表中,要查询数据必须使用结构化的SQL语句,有着严格的一致性要求。而NOSQL是存储非结构化的,非预知的数据,数据量大,数据结构多样,数据是以键值对的方式存储,并且是最终一致性,也就是非严格一致性。从查询效率上比较,NOSQL要远远大于RDBMS。学习的时候下...
2019-04-02 10:37:18
158
原创 ORACLE建表规范
最近在项目中,新增了好几张表,提测的时候看到同事整理的sql。在一般性的项目里面,可以参照这个顺序来:一、建表,指定列类型,指定约束,设置主键;二、加表注释,列注释,方便其它开发人员使用;三、加索引,提高表查询速度;四、加自增序列,新增数据时会用到。/*===============Table: ORD_CANCEL=====================*/crea...
2018-12-18 10:50:28
2508
原创 UML类图简介
类图类图可以展示类的结构以及类与类之间关系一、类结构,包括类名、属性、方法。+、-、#表示类的可见范围,分表为public、private、protected。1、属性的表达方式为 【可见性 属性名 : 字段类型】2、方法的表达方式为 【可见性 方法名(参数列表):返回类型】二、类与类之间的关系类与类之间的关系可以分为多种1、关联关系关联关系又细分为单向...
2018-11-15 10:40:28
2050
原创 负载均衡和Nginx
负载均衡在web应用中,一般一个应用在生产环境都会集群部署,然后通过负载均衡将请求分发到不同的服务器进行处理。负载均衡有硬件和软件之分,硬件如F5,软件有Nginx。 使用负载均衡,可以优化资源利用率,最大化吞吐量,减少延迟,再者系统的伸缩性和可靠性也得到了相应的保障。负载均衡有响应的策略,每种策略各有不同,我们可以根据具体的业务场景选择合适的均衡策略。下面介绍Ngin...
2018-11-05 14:42:04
863
原创 OSI七层网络模型笔记
osi七层网络模型Open System Interconnection,开放式系统互联七层分为:一,物理层,处于osi的第一层,也是最底层。它的作用是通过物理媒介进行信号传输。物理层的传输媒介有光纤和无线电等,分有线和无线两类。这一层,数据的单位是比特。二,数据链路层,它的作用传输有地址的帧,相关的概念有交换机、帧、Mac地址,物理寻址等。这一层数据的单位是帧。三,网络层,选...
2018-10-20 00:34:01
307
原创 白话设计模式--构造者模式和原型模式
设计模式是什么?设计模式,顾名思义,就是软件设计过程中常见问题的解决方案,是经验的总结。设计模式类型:一、Builder,构造者模式。它是构造复杂对象的一种方式,尤其是在用相同的方式构造不同对象时,显得尤为有效。例如,一般在封装实体类时我们通常会用构造方法等形式往实体类传递参数,有可能对不同个数的参数进行初始化,你会定义出不同的构造方法,当然这都没问题,如果是当前实体类中的参数过于...
2018-10-17 16:16:16
370
原创 StringBuilder和StringBuffer源码解析
String对象是immutable不可变对象StringBuffer和StringBuilder是可变的,为什么,他们又是如何实现的?这里以StringBuilder为例,因为StringBuffer和StringBuilder大体是相同的,只是线程安全的差别以及由此产生的效率差别。StringBuilder继承了AbstractStringBuilder,并实现了Serializa...
2018-10-17 13:57:21
169
原创 java内存结构和垃圾回收机制
java和c语言不同开发c语言项目,需要程序员手动清理垃圾,而java有垃圾自动回收机制。它可以减少内存异常发生的几率。一、java的内存结构,可以分为五个区域:1、程序计数器,它保存的是程序当前执行的指令的地址,也就是说是用来指示 执行哪条指令的。在多线程的环境下,每个线程都要有自己的程序计数器,这样在线程切换的时候,每个线程能恢复到线程之前的执行位置。2、java栈,Java栈...
2018-10-15 20:23:54
221
原创 boostrap组件笔记
boostrap是一款优化的前端框架,出自Twitter对手持客户端支持非常好学好了这个,对前端开发非常有帮助,它就像jQuery相对js,能极大的提高你的开发效率。其实使用boostrap简而言之,就是要知道有哪些组件,以及这些组件的class 下面就整理下boostrap的组件字体图标需要导入fonts文件,然后创建一个span,使用glyphicon&l...
2018-08-06 14:40:02
425
原创 javascript知识点汇总
概述:ECMA-262 JavaScript 是一种流行的脚本语言JavaScript 是一种轻量级的编程语言。用法HTML 中的脚本必须位于 <script> 与 </script> 标签之间。脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中。示例<script> alert("我的第一个 Java...
2018-07-02 19:11:01
258
原创 jQuery常用方法和不常用方法合集
引入文件:<script type="text/javascript" src="jquery.js"></script>基础语法:$(selector).action();选择器:$("p")$("p.intro")$("p#demo")属性选择$("[href]") $("[href='#']")$
2018-06-13 16:46:46
984
原创 java反射机制和Class类
面向对象思想一切皆对象类也是对象,Class类的对象,java.lang.ClassClass类的构造器是私有的,只有虚拟机可以直接创建它的对象,有三种创建方式:类.class、类对象.getClass、Class.forName静态加载:new,发生在编译的时候动态加载:Class.forName,发生在运行的时候通过Class的对象可以反过来得到类的对象...
2018-05-28 13:40:55
271
原创 java多线程之Executor
程序进程:运行的程序线程:进程中负责程序执行的执行单元,一个进程至少包括一个线程。单线程:一个进程一个线程多线程:一个进程多个线程 多线程是为了更好的利用CPU,提高程序运行的速度。实现方式:继承Thread类、实现Runnable接口public class Test { public static void main(String[] args) {...
2018-05-28 11:26:18
198
原创 git如何基于已有的远程分支新建本地分支开发
假设远程有个normal常规分支而你只是改一个bug或者做一个小需求一般情况下这完全可以不用新建远程分支我们可以基于normal常规分支创建一个本地分支在本地分支开发然后将本地分支绑定到normal分支再从本地分支提交代码到normal分支新的本地分支以dev开头taskId结尾例如dev_96064从建立到绑定到提交步骤如下:$git checkout normal$git pull新建:$gi...
2018-04-11 11:15:20
7854
原创 java枚举类示例
看完这个,你就知道枚举可以怎么定义属性和方法了public enum TBSHOP_TYPE { TBSHOP_c0("C0-xx","xx专卖店"), TBSHOP_C1("C1-xx","xx折扣店"), TBSHOP_C2("C2-xx","xx票务店"), TBSHOP_C3("c3-xx","xx成都店"); priv
2018-02-08 14:57:19
1123
原创 记录一下rabbitmq的学习
架构的演变:单一应用架构——>垂直应用架构——>分布式服务架构——>面向服务架构。 消息队列分布式是架构中的至关重要的一部分。 AMQP,高级消息队列协议。因为rabbitmq就是这个协议的一个实现。当然这个协议的实现有很多,但我们这里只说说rabbitmq。 消息队列的作用: 异步处理 应用解耦 流量削峰,提供系统的处理能力。 消息队列图解几个重要的概念: p...
2018-02-08 11:47:17
243
原创 MySQL主从复制读写分离
目前存在的问题: 在实际的生产环境中,由于单台Mysql作为独立的数据库无论是高并发或者在安全性等方面出现各种问题。因此,我们可以通过主从复制(Master-Slave)、读写分离(MySQL-Proxy)的方式来提升系统数据库的并发负载能力。简而言之,以前是一个人干活,现在是多个人干活。 ————————————————————————————————————————————— 概念解析: ——
2018-01-19 15:13:25
254
原创 关于nosql的cap"理论"
声明下,cap理论有点模糊,理解的可能不到位。——————————————————————————————————————————————CAP是相对传统的ACID数据库事务特性提出来的。CAP分别是三个概念,C-consistency一致性、A-available可用性、P-partition tolerance分区容错性(就是分区)。CAP定律说的是在一个分布式计算机系统中,一...
2018-01-18 20:38:35
1265
原创 说说nosql的优缺点
一直都想弄明白nosql和传统关系型数据库的区别,可以说区别很多。例如:——灵活的数据模型,结构比后者更丰富,传统关系型数据库都是结构化的表,nosql可以是列式存储、key-value和文档存储;——更易扩展,像nosql数据库分分钟就可以添加一台新的服务器;——高可用,查询效率高,传统关系型数据库受限于磁盘io,所以在高并发的情况下,压力倍增,而像redis这种内存数据库每秒支持1...
2018-01-18 20:20:04
14859
原创 mysql generator使用方法
Maven项目:一,在pom.xml添加plugin,并指定generatorConfig.xml位置 org.mybatis.generator mybatis-generator-maven-plugin 1.3.2
2017-10-31 15:50:38
4603
1
原创 ubuntu安装mysql
安装mysql1. sudo apt-get install mysql-server2. apt-get isntall mysql-client3. sudo apt-get install libmysqlclient-dev查看是否安装成功sudo netstat -tap | grep mysql服务登录退出mysql -u root -pquit
2017-09-01 23:19:41
209
原创 数据性能优化的逻辑顺序
原链:https://www.zhihu.com/question/19719997来源:知乎很多人第一反应是各种切分。我给的顺序是:第一优化你的sql和索引;第二加缓存,memcached,redis;第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的atlas,其它的要么效率不高,要么没人维护;第四如果以上都做了还是慢,
2017-09-01 23:17:09
361
原创 Redis常用命令和Jedis 常用方法
基本数据类型及常用命令:StringSET name 'penn'GET name'penn'Hash(哈希)HMSET penn name zhangxiaopeng age 27 email xinqing5130@163.comHGETALL pennHGET penn nameHKEYS pennHVALS pennList(列表)LPUSH
2017-07-25 18:08:21
456
原创 既有接口,为何还要抽象类
接口是implements,一个类可以实现多个接口,并且要实现接口里的所有抽象方法。这样,接口就有了一个天生的短板,那就是当多个类实现同一个接口时,如果有共同的操作,那么怎么封装,接口里面是不能有实例方法的。比如说,有接口A ,类B1、类B2和类B3实现A,但是B1、B2和B3里面都有一个共同的操作,就比如是查询所有用户保存到一个map中,然后判断当前新增的用户是否存在map中,我们是不能把这个方
2017-06-02 14:47:13
4047
6
原创 Linux vim使用教程
一、基础:1、使用vim编辑text.txt:vim test.txt 2、保存修改::wq 保存3、vim命令模式和插入模式切换:i 插入模式Esc 命令模式二、常用1、插入模式跟windows差不多,键盘上能用的按键都一样2、命令模式:光标:---j向下一行---k向上一行---h向前进一个字符---l向后进一个字符,jkh
2017-05-10 18:05:31
351
原创 Redis Windows 基础
windows:在redis录下下:1.启动服务 redis-server.exe redis.conf2.重新开辟窗口 redis-cli.exe -h 127.0.0.1 -p 6379 最基本命令: set key value get key基本数据类型: String SET name 'penn' GET name 'penn'
2017-05-09 16:01:40
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人