自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(185)
  • 收藏
  • 关注

原创 Lucene 高阶查询的六脉神剑 —— QueryParser

上篇我们介绍了 Lucene 多样的查询模式,每一种都是相互独立的用来解决特定查询目标的 Query 对象。本节我们要将这些查询模式使用 QueryParser 组合起来...

2019-09-14 11:44:26 362

原创 要飞起来了,Lucene 高阶查询技巧

在前面的章节中我们使用了最基础的关键词查询 TermQuery 和 复合查询 BooleanQuery,本节我们来尝试 Lucene 内置的其它高级查询功能。字符串前缀查...

2019-09-12 10:39:05 354

转载 面试题:请解释一下什么是虚拟内存?

内存对于用户来说就是一个字节数组,我们可以根据地址来访问到某个字节或者某些字节:很久之前的内存很久很久之前,一台机器上只放置一个程序,操作系统仅仅作为一个函数库存在。对于...

2019-09-11 09:10:00 1959

原创 倒排索引的精致结构

前文提到倒排索引就是一个字典,字典的 Key 是关键词,字典的 Value 是文档 ID 列表(PostingList)。但是如果再深入一些,就完全不是这么回事,不论是 ...

2019-09-09 10:01:55 241

原创 一个朴素的搜索引擎实现

今天我们要使用 Lucene 来实现一个简单的搜索引擎,我们要使用上一节爬取的果壳网语料库来构建索引,然后在索引的基础上进行关键词查询。上一节果壳网的语料库放在了 Red...

2019-09-07 09:40:00 386

转载 5折抢购最后一天 | 戴尔顶级配置电脑,限时秒!

创业钱紧,买设备需要精打细算低端、旧款、性能差私底下总被大家笑话有钱谁不想给大家配个好电脑?创业老板真的“太南了“!戴尔深圳创业节五折限时抢,全网底价购最后冲刺,仅剩一天...

2019-09-06 10:21:09 144

原创 搜索引擎的预料库 —— 万恶的爬虫

本节我们来生产一个简单的语料库 —— 从果壳网爬点文章。后面我们将使用这些文章来完成索引构建和关键词查询功能。https://www.guokr.com/article/...

2019-09-05 09:20:00 186

原创 字节跳动面试题 —— 史莱姆变形计

本文的主人公叫「苟史韵」,他最近参与了字节跳动面试,遭遇了一道非常困惑的面试题面试官出题-----------------------------------------...

2019-09-04 09:20:00 418

转载 万亿级图数据库 Nebula Graph 的数据模型和架构设计

Nebula Graph 是目前唯一能够存储万亿个带属性的节点和边的在线图数据库。Nebula Graph 不仅能够在高并发场景下满足毫秒级的低时延查询要求,而且能够提供...

2019-09-03 09:20:00 404

原创 开源搜索技术的核心引擎 —— Lucene

ES 很了不起,需要使用搜索技术的互联网公司大半都在使用他,但是它的核心引擎却是另一个开源框架 —— Lucene。ES 只是在 Lucene 的基础上穿了一件华丽的外衣...

2019-09-02 09:20:00 306

原创 字节跳动面试题 —— 水壶问题

原题:给你一个装满水的 8 升满壶和两个分别是 5 升、3 升的空壶,请想个优雅的办法,使得其中一个水壶恰好装 4 升水,每一步的操作只能是倒空或倒满。图片理解了这个题目...

2019-08-27 10:13:28 3766

转载 分布式图数据库 Nebulan Graph 有奖捉虫计划正式开启

众测 Banner 01.pngNebulan Graph 捉虫计划是开源的分布式图数据库 —— Nebula 发起的「找 Bug」活动,旨在发动开源社区的力量共建图数...

2019-08-22 09:20:00 130

原创 搜索技术的秘密(一):概览

「多字段搜索」是一个非常复杂的话题,设想你有一堆日志记录,有很多字段。然后产品经理希望可以通过各种组合字段进行搜索,比如根据时间段、用户 ID、行为类型、目标 ID 等,...

2019-08-19 09:20:00 785

原创 面试题 —— 数字幻方

请将 1~9 这 9 个数字填入 3x3 的矩阵,使得矩阵的横三行竖三列以及两对角线的数字和相等,找出所有的填充方案。比如下面的这个幻方就是满足条件的方案之一6 cel...

2019-08-17 09:03:18 199

原创 老钱的字节跳动内推入口,欢迎优秀的同学加入

但是来了之后发现,这些焦虑都是多余的,我适应的很好,和现在的 20人左右的团队愉快地一起工作和生活,几乎没有任何摩擦。这里没有办公室政治,上班不用打卡。有乒乓球、桌上足球...

2019-08-16 15:58:29 343

原创 深圳 GIAC 技术大会 Redis 演讲文字稿

观众朋友们,我是来自掌阅的工程师钱文品,今天我带来的是分享主题是:Redis 在海量数据和高并发下的优化实践。Redis 对于从事互联网技术工程师来说并不陌生,几乎所有的...

2019-06-23 16:28:26 200

原创 布隆过滤器过时了,未来属于布谷鸟过滤器?

为了解决布隆过滤器不能删除元素的问题,布谷鸟过滤器横空出世。论文《Cuckoo Filter:Better Than Bloom》作者将布谷鸟过滤器和布隆过滤器进行了深入...

2019-06-09 09:10:31 178

原创 深入理解 hash 结构的另一种形式 —— 开放地址法

本文我们来探讨一个数据结构的基础话题:hash 结构HashMap 无 Java 人不知无 Java 人不晓,它使用开链法处理 hash 碰撞,将碰撞的元素用链表串起来挂...

2019-06-06 09:20:00 100

转载 Redis 精确去重计数 —— 咆哮位图

如果要统计一篇文章的阅读量,可以直接使用 Redis 的 incr 指令来完成。如果要求阅读量必须按用户去重,那就可以使用 set 来记录阅读了这篇文章的所有用户 id,...

2019-06-04 09:29:28 467

转载 分布式系统的可靠性指的是什么 —— 你可能从来就没有认真思考过

本文节选之 DDIA 《Design Data Intensive Applications》,DDIA是一本神书,是一本可以让很多高级资深工程师醍醐灌顶的书。人们对于一...

2019-06-02 10:25:15 475

原创 关于服务限流的一些思考

限流的价值感 限流必然是很有价值的,在系统资源不足时面对外部世界的不确定性(突发流量,超预期的用户)而形成的一种自我保护机制。 但是价值感是很低的,因为99.99%的时...

2019-06-01 12:32:32 107

转载 RabbitMQ 和 Kafka 的消息可靠性对比

RabbitMQ和Kafka都提供持久的消息保证。两者都提供至少一次和至多一次的保证,另外,Kafka在某些限定情况下可以提供精确的一次(exactly-once)保证。...

2019-05-20 16:49:15 748

转载 掘金 MySQL 小册的艰辛创作历程

精诚所至,金石为开。在彼时对数据库“进阶”的理解只限于为WHERE条件中的列加索引罢了,从未想过之后会为MySQL写一本系统的书。不过今日《MySQL是怎样运行的:从根儿...

2019-05-13 10:57:45 2206

原创 一个简单的基于 Redis 的分布式任务调度器 —— Java 语言实现

折腾了一周的 Java Quartz 集群任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多节点(多进程)环境下 Quartz 似乎无法动态增减任务,恼火。无奈之下...

2019-04-29 17:30:04 120

转载 RabbitMQ 消息可靠性、延时队列以及高可用集群

上周末参加了阿里云栖社区举办的技术分享会,我分享的主题是 RabbitMQ,第一次在上百人面前做技术分享,略有紧张。回家后看了一下视频回放才敢相信原来自己讲的并没有自己想...

2019-04-22 19:02:21 162

转载 一天彻底搞懂 Git 《Git 原理详解及实用指南》

我是扔物线,Android 开发者,开源贡献者,在 GitHub 上有 4.9k followers 和 7.8k stars ,个人的 Android 开源库 Mate...

2019-03-24 08:57:38 1022

转载 深入Go的底层,带你走近一群有追求的人

上周六晚上,我参加了“Go夜读”活动,这期主要讲Go汇编语言,由滴滴曹春晖大神主讲。活动结束后,我感觉打通了任督二脉。活动从晚上9点到深夜11点多,全程深度参与,大呼过瘾...

2019-03-23 09:20:00 100

原创 布隆过滤器实战【防止缓存击穿】

为什么引入我们的业务中经常会遇到穿库的问题,通常可以通过缓存解决。 如果数据维度比较多,结果数据集合比较大时,缓存的效果就不明显了。 因此为了解决穿库的问题,我们引入Bl...

2019-03-22 10:22:00 4426

转载 图解Go语言内存分配

Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每次内存分配都需...

2019-03-15 10:08:31 96

转载 阿里巴巴 Nacos 分布式配置中心原理

动态配置管理是 Nacos 的三大功能之一,通过动态配置服务,我们可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息。动态配置中心可以实现配置更新时无需重...

2019-03-12 11:08:51 399

转载 一个字节的网络漫游故事独白

大家好,给大家介绍一下,我是一个字节。相比于你们人类据说即将达到的百岁人生的寿命,我的一生简直不直一提(我只能存活零点几个毫秒)。也许只有那些码农才会了解我,而且也只有一...

2019-03-11 09:48:51 106

原创 一种简单易懂的 MyBatis 分库分表方案

数据库分库分表除了使用中间件来代理请求分发之外,另外一种常见的方法就是在客户端层面来分库分表 —— 通过适当地包装客户端代码使得分库分表的数据库访问操作代码编写起来也很方...

2019-03-10 10:01:53 298

转载 MySQL 是怎样运行的:从根儿上理解 MySQL

MySQL 是怎样运行的:从根儿上理解 MySQL小孩子 著12 小时 · 25 小节从根儿上理解 MySQL,让 MySQL 不再是一个黑盒小册内容小册介绍MySQL...

2019-03-07 09:20:00 9473

原创 轻量级 Web 框架 Gin 结构分析

Go 语言最流行了两个轻量级 Web 框架分别是 Gin 和 Echo,这两个框架大同小异,都是插件式轻量级框架,背后都有一个开源小生态来提供各式各样的小插件,这两个框架...

2019-03-04 10:52:30 690

转载 分布式系统技术难题--异地多活

什么是异地多活?为了保证系统能够对机房级别的故障进行容错,不会使系统不可用,这就需要在机房级别对系统进行冗余处理。而这就需要在架构上进行良好的设计。来面对多机房场景下的技...

2019-02-26 11:34:07 469

原创 深入 LevelDB 数据文件 SSTable 的结构

LevelDB 的键值对内容都存储在扩展名为 sst 的 SSTable 文件中,SSTable 的磁盘文件结构比较复杂,读者在阅读本节之前要做好心理准备。如果有任何看得...

2019-02-19 09:20:00 548

转载 Golang之轻松化解defer的温柔陷阱

defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。深受Go开发者...

2019-02-14 10:38:04 71

转载 日活亿级用户的服务器架构要怎么搭?

引言本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的。负载均衡,大家可能听过什么3层负载均衡、4层负载均衡、7层负载均衡什么的?那这是怎么分的呢...

2019-01-30 09:10:00 120

转载 深度解密HTTP通信细节

本文作者:饶全成,中科院计算所硕士,滴滴出行后端研发工程师。上一篇文章中,我们学会了用wireshark和tcpdump来分析TCP的“三次握手,四次挥手”,非常好用。这...

2019-01-18 12:02:11 102

原创 BAT 经典算法笔试题 —— 磁盘多路归并排序

在 LevelDB 数据库中高层数据下沉到低层时需要经历一次 Major Compaction,将高层文件的有序键值对和低层文件的多个有序键值对进行归并排序。磁盘多路归并...

2019-01-17 10:29:06 94

空空如也

空空如也

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

TA关注的人

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