蓝精灵

改变世界的是这么一群人,他们寻找梦想中的乐园,当发现找不到时,就亲手创造了她......

排序:
默认
按更新时间
按访问量

海量数据去重之SimHash算法简介和应用

SimHash是什么 SimHash是Google在2007年发表的论文《Detecting Near-Duplicates for Web Crawling 》中提到的一种指纹生成算法或者叫指纹提取算法,被Google广泛应用在亿级的网页去重的Job中,作为locality sensitive...

2018-11-13 18:30:21

阅读数:30

评论数:0

隆过滤器(BloomFilter)持久化

Bloomfilter运行在一台机器的内存上,不方便持久化(机器down掉就什么都没啦),也不方便分布式程序的统一去重。我们可以将数据进行持久化,这样就克服了down机的问题,常见的持久化方法包括持久化到本地磁盘或结合Redis进行持久化。本文主要介绍持久化到本地的操作。 pom.xml &...

2018-11-08 10:17:01

阅读数:33

评论数:0

缓存击穿问题

       缓存穿透是指查询一个一定不存在的数据,由于缓存不命中,并且出于容错考虑, 如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。        例如:下图是一个比较典型的cache-storage架构,cache(例如memcach...

2018-11-07 18:03:08

阅读数:25

评论数:0

grafana-diagram插件安装、使用

grafana-diagram是一个Grafana面板插件,它通过利用mermaid.js库提供了创建流程图,序列图和甘特图的方法。插件地址:https://grafana.com/plugins/jdbranham-diagram-panel 可以使用Mermaid JS语法定义图表。 me...

2018-11-07 16:33:42

阅读数:34

评论数:0

jdk1.7下Double.parseDouble性能问题排查

背景  简单的系统架构图如下,核心代码在service action模块当中,其中service action是一个通过java的ExecutorService实现并发的多任务处理,在单个任务当中做的主要包括3大块:分别是大量for循环计算、fastjson反序列化、大量的Double.pars...

2018-11-07 10:25:25

阅读数:46

评论数:0

mermaid工具

mermaid是一款开源的画流程图、甘特图、时序图工具,她提供了一种类似markdown的语法来创建各种图。 官网:https://mermaidjs.github.io/ 在线编辑器:here 1、入门 我们先试用mermaid提供的在线编辑器,来熟悉一下mermaid的各种画图语法; ...

2018-10-30 17:04:54

阅读数:70

评论数:0

badger 一个高性能的LSM K/V store

大家好,给大家介绍一下, 新晋的高性能的 K/V数据库: badger。 这是 dgraph.io开发的一款基于 log structured merge (LSM) tree 的 key-value 本地数据库, 使用 Go 开发。 事实上,市面上已经有一些知名的基于LSM tree的k/v...

2018-10-29 16:53:02

阅读数:33

评论数:0

正则表达式——贪婪非贪婪模式

贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。 1.举一个例子: String str="abcaxc&qu...

2018-10-23 19:42:26

阅读数:31

评论数:0

正则引擎:DFA和NFA

1.历史: 正则表达式萌芽于1940年代的神经生理学研究,由著名数学家Stephen Kleene第一个正式描述。具体地说,Kleene归纳了前述的神经生理学研究,在一篇题为《正则集代数》的论文中定义了“正则集”,并在其上定义了一个代数系统,并且引入了一种记号系统来描述正则集,这种记号系统被他称...

2018-10-23 15:49:13

阅读数:32

评论数:0

正则表达式——字符组(Character Classes) [ ]

中括号在正则中称为字符组(Character class),顾名思义,字符组为一组字符,它表示在一个位置里可能出现的多种字符。注意这里强调只匹配一个位置哦。 例如:[abc]表示字符“a”或“b”或“c”。 常见错误用法: 因为[]本身表示的就是字符之间“或”的关系,因此在[]中使用“|”来...

2018-10-22 20:44:22

阅读数:26

评论数:0

正则表达式之——捕获(capture group)和反向引用

一、分组: 正则表达式中的分组又称为子表达式,就是把一个正则表达式的全部或部分当做一个整体进行处理,分成一个或多个组。其中分组是使用“()”表示的。进行分组之后“()”里面的内容就会被当成一个整体来处理。 示例: (Matz|Eich) //匹配Matz或Eich (Matz)? //匹配...

2018-10-22 20:06:08

阅读数:40

评论数:0

正则表达式之——先行断言(lookahead)和后行断言(lookbehind)

正则表达式的先行断言和后行断言一共有4种形式:  (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion)  (?!pattern) 零宽负向先行断言(zero-width negative lookahead assertio...

2018-10-22 20:05:23

阅读数:20

评论数:0

protobuf反射

本文将介绍用java解析.proto文件。   protobuffer的java库里面有提供可以直接解析.ptoto文件的相关类,并不能像C++那样直接可以解析.proto文件,而本文主要介绍相关解析类如何使用。 1、为什么要解析proto文件结构呢? 如果已知protobuf内容对应的是哪个...

2018-10-19 15:05:41

阅读数:23

评论数:0

nginx location中多个if里面proxy_pass

1、首先我们回顾一下nginx中location的相关知识 1)location的匹配指令: ~      #波浪线表示执行一个正则匹配,区分大小写 ~*    #表示执行一个正则匹配,不区分大小写 ^~    #^~表示普通字符匹配,不是正则匹配。如果该选项匹配,只匹配该选项,不匹配别的...

2018-10-18 16:59:46

阅读数:140

评论数:0

Nginx处理请求的11个阶段(agentzh的Nginx 教程学习记录)

Nginx 处理请求的过程一共划分为 11 个阶段,按照执行顺序依次是 post-read、server-rewrite、find-config、rewrite、post-rewrite、preaccess、access、post-access、try-files、content 以及 log。 ...

2018-10-18 15:20:43

阅读数:31

评论数:0

nginx rewrite 指令last break区别

nginx 的官方注释是这样的: last stops processing the current set of ngx_http_rewrite_module directives followed by a search for a new location matching th...

2018-10-18 11:23:42

阅读数:21

评论数:0

nginx常用的内置变量以及重定向

一、nginx内置常用变量: $arg_PARAMETER #这个变量包含GET请求中,如果有变量PARAMETER时的值;$args #这个变量等于请求行中(GET请求)的参数,例如foo=123&bar=blahblah; $query_string #与$args相...

2018-10-18 11:02:24

阅读数:18

评论数:0

awk 几个特殊的内置变量

1、特殊变量: NR:读取到所有记录(包括多个文件)的行数索引号(大概是Number Of Record的意思);FNR:只的是awk所读取到的每个文件中的行数索引号,当文件发生切换时候,FNR重新从1开始,大概是File Number Of Record的意思;NF:当前行中的字段个数(列数)...

2018-10-17 21:59:32

阅读数:27

评论数:0

git config 介绍

Git的三个重要配置文件分别是/etc/gitconfig,${HOME}/.gitconfig,.git/config。这三个配置文件都是Git运行时所需要读取的,但是它们分别作用于不同的范围。 /etc/gitconfig: 系统范围内的配置文件,适用于系统所有的用户; 使用 git con...

2018-10-17 16:48:16

阅读数:32

评论数:0

Spark和Flume-ng整合

如何将Flune-ng里面的数据发送到Spark,利用Spark进行实时的分析计算。本文将通过Java和Scala版本的程序进行程序的测试。 Spark和Flume-ng的整合属于Spark的Streaming这块。在讲述如何使用Spark Streaming之前,我们先来了解一下什么是Spar...

2018-10-15 20:59:50

阅读数:31

评论数:0

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