自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1801)
  • 资源 (3)
  • 论坛 (1)
  • 收藏
  • 关注

原创 spring中的单例工厂SingletonBeanRegistry设计与实现

单例工厂接口为SingletonBeanRegistry,主要是单例的注册,其默认实现为DefaultSingletonBeanRegistry1、类层次图

2021-04-12 21:42:24 7

原创 redis中的crc16算法

使用的是循环冗余检验算法。1、算法原理假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,对应g(x)中x^k的系数。将g(x)乘以x^m,既将g后加m个0,然后除以m阶多项式h(x),得到的(m-1)阶余项r(x)对应的二进制码r就是CRC编码。h(x)可以自由选择或者使用国际通行标准。redis使用的是crc16-ccit

2021-04-11 20:31:25 9

原创 LeetCode 468 validate ip address(正则表达式)

问题:判断给定的ip地址是ipv4还是ipv6或者两者都不是思路:使用正则表达式。具体代码参考:https://github.com/wuli2496/OJ/tree/master/LeetCode/468%20validate%20ip%20address

2021-04-11 15:26:33 8

原创 es之聚合

1、查询结构{ "query": {…}, "aggs": { "aggregation_name": { "aggregation_type": { ... } } }}其中的aggs为aggregations缩写形式,两种都可以。聚合的数量没有限制。每个聚合需要指定唯一名字及对应类型。...

2021-04-10 16:23:02 6

原创 spring boot中SpringBootCondition框架

1、类层次结构

2021-04-09 07:43:36 18

原创 condition框架设计与实现

condition是spring当中的条件框架。可以用于基于条件来决定是否创建Bean,如@Profile以及Spring boot中的@Conditionalxxx注解1、类层次图

2021-04-08 22:05:07 15

原创 ConfigurationClassPostProcessor设计与实现

1、类结构图

2021-04-06 22:50:46 16

原创 es之更好查询

1、文档匹配文档评分因素文档加权:对文档建立索引时,对文档的加权值 字段加权:查询和索引时,对字段的加权值 协调:基于文档词条数的协调因子 逆文档频率:基于词条的因子,告诉评分公式,给定词条出现的频率有多低。逆文档频率越高,词条越罕见。 长度规范:基于字段的规范化因子,它基于给定字段包含的词条数。字段越长,该因子给的加权值越小。 词频:基于词条的因子,描述文档中给定词条的出现次数。词频越高,文档得分越高。 查询规范:基于查询的规范化因子。由每个查询词条的权重的平方之和计算得到。默认评分

2021-04-05 21:02:54 26

原创 es之索引

1、添加映射使用curl -XPUT 'localhost:9200/library/_mapping' -d @structured_mapping.json -H "Content-Type:application/json"。对于映射中存在数组时,使用"field":{"properties":{}}形式对于映射中存在对象时,使用"field":{"type":"object", "properties":{}}...

2021-04-04 15:48:40 36

原创 elasticsearch之查询扩展

1、过滤器与查询过滤器是不计算评分, 而查询需要

2021-03-31 22:37:48 22

原创 es启动

1、启动相关类2、启动时序

2021-03-30 21:43:05 17

原创 elasticsearch查询

1、查询方式有两种查询方式,一种是通过在url中指定查询条件 ,另外一种是通过DSL查询。都是使用GET方法1.1 分页查询from 指定从文档的什么位置开始,默认值0 size 指定一次查询返回多少结果 curl 'localhost:9200/library/_search?pretty' -d '{"from":9, "size":20,"query":{"query_string":{"query":"title:crime"}}}' -H "Content-T.

2021-03-28 15:34:13 50

原创 curl命令使用

-s参数将不输出错误和进度信息--data-binary <data>提交二进制数据,当data是以@开始时,表示是文件

2021-03-27 23:22:36 9

原创 2021活动记录

2021.3.27《ElasticSearch服务器开发》第二版

2021-03-27 22:18:22 23

原创 mybatis之ResultMap

1、结构关系图discriminator主要是区分子类,其形式为,其属性包含属性 column javaType jdbcType typeHandler 子结点及其属性子节点 case 属性 value 属性 resultMap

2021-03-26 22:51:34 13

原创 elasticsearch7.x源码编译

1、下载源码git clonehttps://github.com/elastic/elasticsearch.git2、去除javaVersion检查修改elasticsearch-7.11.2\buildSrc\build.gradle文件3、去掉grant BaseCode修改elasticsearch-7.11.2\server\src\main\resources\org\elasticsearch\bootstrap\security.policy文件,将grant c.

2021-03-25 07:33:07 28

原创 elasticsearch基础

1、基本概念2、增删改查添加curl -XPUT 'http://host:port/{index}/{type}/{id}' -d '{json数据}'curl -XPOST 'http://host:port/{index}/{type}' -d '{json数据}' //id自动生成获取curl -XGET 'http://host:port/{index}/{type}/{id}[?pretty]'更新curl -XPOST 'http://host:port..

2021-03-24 22:22:58 48

原创 javascript高级程序设计之函数表达式

1、闭包指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,在一个函数内部创建另一个函数。1.1 闭包与变量闭包只能取得包含函数中任何变量的最后一个值。1.2 关于this对象匿名函数的执行环境具有全局性,this指向全局作用域对象2、模仿块级作用域函数表达式的后面可以跟圆括号,将函数声明转换成函数表达式,只要将函数声明部分加上一对圆括号。可以限制向全局作用域中添加过多的变量和函数。3、私有变量函数中定义的变量可以认为是私有变量...

2021-03-21 21:09:48 9

原创 javascript高级程序设计之面向对象的程序设计

1、概述对象定义为无序属性的集合,其属性可以包含基本值、对象或者函数。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。可以把ECMAScript的对象想象成散列表,无非就是一组键值对,其中值可以是数据或函数。2、理解对象2.1 属性类型...

2021-03-21 17:12:51 17

原创 spring中Converter如何注入的

1、概要spring boot框架中定义的类型为Converter的Bean是如何注入到Spring框架中的,主要是通过DefaultFormattingConversionService来完成的。2、spring boot中自动配置在WebMvcAutoConfiguration中的定义了mvcConversionService,创建WebConversionService(继承自DefaultFormattingConversionService),addFormatters中会调用Appl

2021-03-18 07:32:03 28

原创 集群

1、概要redis集群是redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能2、节点一个redis集群通常由多个节点组成,在刚开始的时候,每个节点是相互独立的,它们都处于一个只包含自己的集群当中,要组建一个真正可工作的集群,必须将各个节点连接起来,构成一个包含多个节点的集群。连接各个节点的工作可以使用CLUSTER MEET命令来完成,命令的格式为CLUSTER MEET <ip> <port> <cpo

2021-03-15 22:09:19 39

原创 javacc的源码构建

1、git下载git clonehttps://github.com/javacc/javacc.git2、下载ant在http://ant.apache.org/下载ant,将ant的bin路径添加到Path中3、构建切换到目录javacc,执行ant,会在当前目录下创建目录target,生成javacc.jarcd javaccant...

2021-03-15 21:25:34 21

原创 spring中@Value的注解解析

@Value的注解是通过AutowiredAnnotationBeanPostProcessor来处理的。其处理时序为其构造函数中添加了支持的注解类型AutowireCandidateResolver是在什么时候设置的?是在AnnotationConfigUtils中设置的在解析Value的值是,是通过StringValueResolver来解析的,是在何处设置的embeddedValueResolvers?是在AbstractApplicationContext中的f

2021-03-14 22:02:35 50

原创 spring中的AnnotationConfigUtils

1、概要AnnotationConfigUtils作为抽象类作为静态方法来使用,其主要是注册一些公共的BeanPostProcessor及BeanFactoryPostProcessor及处理一些公共的注解。像AnnotataionConfigApplicationContext基于注解的上下文初始化时会调用到。2、注册处理器主要包括ConfigurationClassPostProcessor、AutowiredAnnotationBeanPostProcessor、CommonAnnotat

2021-03-14 21:15:20 12

原创 spring中的BeanFactoryPostProcessor

1、类结构图

2021-03-14 20:57:48 13

原创 ognl语法

1、相关语法

2021-03-13 19:29:41 15

原创 guava之preconditions

主要提供静态方法参数检验,支持的静态方法主要有以下几种(不带其他额外参数的) checkArgument(boolean expression) void checkState(boolean expression) T checkNotNull(T reference) int checkElementIndex(int index, int size) int ch...

2021-03-10 07:36:53 31

原创 javascript高级程序设计之引用类型

1、概要引用类型的值(对象)是引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,也称为类。ECMAScript从技术上讲是一门面向对象的语言,便它不具备传统的面向对象语言所支持的类和接口等基本结构。引用类型有时候也被称为对象定义。2、Object类型创建方式有两种,一种是new Object,另外一种是使用对象字面量表示法{key:value,...}形式属性访问方式有两种,一种是点表示法,另外一种是使用方括号语法,方括号语法的优点是可以通过变

2021-03-06 23:15:42 33

转载 一个人越来越有出息的7大迹象

3月2日,网上公布了最新胡润全球富豪榜。看着榜单前10,我们知道,他们如今的财富大家很难一步实现。但他们所拥有的优秀特质对每个人来说都很值得借鉴。正所谓:学习他人经验,是少走冤枉路的最佳捷径。领悟优秀的人身上的特质,在实践中扎实磨练,也能帮助自己在人群中脱颖而出。懂得深度思考的人,走的更远一个拥有深度思考能力的人,不仅善于发现问题,还会努力寻求解决方案,最终形成高效的能力体系。深度思考,决定着完成目标和任务的效率,也影响着一个人的...

2021-03-06 17:24:57 208

原创 sentinel

1、概要Sentinel是 Redis的高可用性解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动 将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。2、启动并初始化Sentinel启动有两种方式redis-sentinel /path/to/your/sentinel.conf redis-server /pat

2021-03-04 20:57:14 96

原创 spring中事务的设计和实现

1、事务中的抽象设计主要由TransactionMangager,TransactionDefinition,TransactionStatus和TransactionAttributeSource抽象来完成TransactionMagager的层次结构TransactionDefinition的层级结构TransactionStatus的层次结构TransactionAttributeSource的层级结构其整体依赖关系如下图...

2021-03-01 22:57:27 47

原创 javascript高级程序设计之变量、作用域和内存问题

1、基本类型和引用类型的值1.1 动态属性

2021-02-28 20:41:20 35 1

原创 javascript高级程序设计之基本概念

1、语法1.1 区分大小写变量、函数名和操作符都区分大小写1.2 标识符标识符是指变量、函数、属性的名字,或者函数的参数。标识符可以是按照下列格式规则组合起来的一或多个字符第一个字符必须是一个字母、下划线(_)或一个美元符号($) 其它字符可以是字母、下划线、美元符号或者数字标识符中的字母也可以包含扩展的ASCII或Unicode字母字符,但我们不推荐这样做按照惯例,ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个有意义的单词的首字母大写。1.3

2021-02-24 23:20:44 23

原创 复制

1、复制功能实现PSYNC命令具有完整重同步和部分重同步两种模式完整重同步用于处理初次复制情况,通过让主服务器创建并发送rdb文件,以及向从服务器发送保存在缓冲区里面的写命令来进行同步 部分重同步则用于处理断线后重复制情况,当从服务器在断线后重新连接主服务器时,如果条件允许,主服务器可以将主从服务器连接断开期间执行的写命令发送给从服务器,从服务器只要接收并执行这些写命令,就可以将数据更新至主服务器当前所处的状态。部分重同步功能由以下三个部分构成主服务器的复制偏移量(replication .

2021-02-24 21:55:57 40

原创 服务器

1、命令请求执行过程客户端向服务器发送命令请求 服务器接收并处理客户端发来的命令请求,在数据库中进行操作,并产生命令回复 服务器将命令回复发送给客户端 客户端接收服务器返回的命令回复,并将这个回复打印给用户观看1.1 发送命令请求redis服务器的命令请求来自redis客户端,当用户在客户端中键入一个命令请求时,客户端会将这个命令请求转换成协议格式,然后通过连接到服务器的套接字,将协议格式的命令请求发送给服务器1.2 读取命令请求当客户端与服务器之间的连接套接字因为客户端的写入而变得

2021-02-17 22:08:35 81

原创 客户端

对于每个与服务器进行连接的客户端,服务器都会为客户端建立相应的Client结构(客户端状态),这个结构保存了客户端当前的状态信息,以及执行相关功能用到的数据结构。redis服务器状态结构redisSever中的clients属性是一个链表,这个链表保存了所有与服务器连接的客户端的状态结构,对客户端执行批量操作,或者查找某个指定的客户端,都可以通过clients链表来完成。1、客户端属性客户端状态包含的属性可以分为两类一类是比较通用的属性,这些属性很少与特定功能相关,无论客户端执行的是什么工作

2021-02-06 19:45:36 42

原创 CompletableFuture框架

1、类图

2021-02-04 23:06:56 23

原创 事件

redis服务器是事件驱动程序,需要处理以下两类事件文件事件:redis服务器通过套接字与客户端进行连接,而文件事件是服务器对套接字操作的抽象。服务器与客户端的通信会产生相应的文件事件,服务器则通过监听并处理这些事件来完成一系列网络通信操作。时间事件:redis服务器中的一些操作如serverCron函数需要 在给定的时间点执行,而时间事件是服务器对这类定时操作的抽象。1、reactor模式基于reactor模式实现的包含文件、时间事件的事件分发器。文件事件处理器使用I/O多路复用来同时

2021-02-04 22:00:22 63 1

原创 aof持久化

1、redis协议+:表示简单字符串-:表示错误::表示整数$:表示批量字符串*:表示数组请求是由批量字符串组成的数组组成

2021-02-02 20:51:15 36

原创 JS中的let和var的区别

ES6 新增了let命令,用来声明局部变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束。在ES6之前,我们都是用var来声明变量,而且JS只有函数作用域和全局作用域,没有块级作用域,所以{}限定不了var声明变量的访问范围。ES6新增的let,可以声明块级作用域的变量。let非常适合用于for循环内部的块级作用域。JS中的for循环体比较特殊,每次执行都是一个全新的独立的块作用域,用let声明的变量传入到 for循环体的作用域后,不会发生改变,.

2021-02-01 07:20:58 49

flash精彩实例chm

介绍flash基本操作以及mtv制作和as

2009-11-20

Linux C编程一站式学习

添加了GFDL许可证,正式网络发布。第三部分还很粗糙,错误也有不少,有待改进。第一部分和第二部分已经比较成熟,第二部分还差三章没写。

2009-09-11

Ubuntu Linux实用学习教程.pdf

Ubuntu 完全基于 Linux 操作系统, 可以免费得到社区及专业机构的支持。庞大的社区是它成长的沃土,请向这片动人的热忱敞开心扉。

2009-09-11

kgduu的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除