10 他山之石头

尚未进行身份认证

他山之石,可以攻玉。

等级
博文 112
排名 1k+

GitChat ‣ 一文掌握 MySQL 索引,秒杀面试官

欢迎订阅本场Chat,附赠10个免费名额 MySQL已经成为互联网行业数据存储的标准,没有之一。不论你正在工作使用,或者你正在学习任意一种服务端的计算机语言,Java、Python、PHP、Go等等,你都在直接或间接的使用MySQL。我们开发过程中,最常与数据库打交道的操作就是CRUD,所以服务端工程师也被戏称为CURD工程师,但CURD的背后,MySQL到底做了...

2019-06-04 11:15:56

GitChat ‣ 优雅编程之正确使用 Stream API

Java8应该是自Java5之后最具革命性的版本,也是目前业界使用量最大的一个版本。其最重磅的特性就是引入了函数式编程,而StreamAPI是真正的将函数式编程进行了落地。本Chat并不是介绍StreamAPI,这类文章网络上汗牛充栋,而是根据作者多年一线开发及CodeReview经验,从真实业务场景出发,整理出来的StreamAPI合理的、优雅的使用方式。...

2019-05-13 23:10:24

求编辑距离

定义编辑距离又称Leveinshtein距离,是由俄罗斯科学家VladimirLevenshtein在1965年提出。编辑距离是计算两个文本相似度的算法之一,以字符串为例,字符串a和字符串b的编辑距离是将a转换成b的最小操作次数,这里的操作包括三种:插入一个字符删除一个字符替换一个字符举个例子,kitten和sitting的编辑距离是3,kitten->sitten(k替

2017-12-26 15:50:08

求素数个数

我最近在leetcode上撸了一个小算法,虽然已经工作了五年,当看到每次代码提交后排名的提升,内心依然很有成就感。题目比较简单,求小于n的素数个数,素数也叫质数,具有以下特点:正整数只能被1和本身整除1既不是素数也不是合数,所以最小的素数是2根据上面的特点,我们还可以推断出:除了2,其它的素数都是奇数依据这一点,我们可以写出下面的实现:classSolution{publi

2017-12-10 22:20:17

服务化架构下的数据一致性如何保证

在系统服务化的过程中,我们不得不面临的一个问题是多个子系统间业务数据的一致性如何保证,解决这个问题有多种方式。XA可能很多人首先会想到XA规范中定义的分布式事务,下图是XA规范中定义的DTP(DistributedTransactionProcessing)模型:但该模式并不适用于如今的互联网应用,主要有以下几点问题:1.XA采用2PC,并不能完全保证一致性;2.2PC有同步

2017-10-27 10:40:24

探究InnoDB可重复读

在RC(ReadCommitted)和RR(RepeatableRead)两种事务隔离级别下,InnoDB存在两种数据读取方式:快照读(SnapshotRead)故名思意,快照读读取的都是快照数据,快照怎么来,在InnoDB引擎下是基于undolog,那undolog又是什么?举例说明,假设有这样一个表:--表结构CREATETABLE`innodb_test

2017-10-17 11:15:35

CAP理论十二年回顾:"规则"变了

CAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。但是通过显式处理分区情形,系统设计师可以做到优化数据一致性和可用性,进而取得三者之间的平衡。自打引入CAP理论的十几年里,设计师和研究者已经以它为理论基础探索了各式各样新颖的分布式系统,甚至到了滥用的程度。NoSQL运动也将CAP理论当作对抗传统关系型数据库的依据。CAP理论主张任何基于网络的数据

2017-10-09 20:02:04

去哪儿网任务系统演进

这是我分享在公司公众号的一篇文章,比较偏业务:http://mp.weixin.qq.com/s/ttNjEgIQ01MgOol7piTjcg

2017-09-01 17:47:01

增量接口的设计及实现

引言在应用开发过程中,我们总会碰到这样的场景:某系统需要同步我们系统的数据去做一些业务逻辑,当数据量较小的时候,可以全量的提供,但当数据量很大时,全量提供就显得很笨重,不仅耗时而且做了很多无用功,这时我们需要一种提供增量数据的机制,只告诉对方变化的数据。提供增量数据大致可分为两种方式:MQ和接口提供,MQ的优点是及时,缺点是丢失、重复、回溯复杂等等问题(依赖于具体MQ实现),这里不过多赘述;接

2017-03-20 15:26:57

再聊线程池

最近恰好在组内分享线程池,又看了看四年前自己写的线程池文章,一是感叹时光荏苒,二是感叹当时的理解太浅薄了,三是感叹自己这么多年依然停留在浅薄的理解当中,没有探究其实现,羞愧难当。遂把分享的内容整理出来,希望能够让读者对线程池有一个全新的认识。

2016-12-09 23:29:15

Hession反序列化导致CPU占用飙高

今天发布一个线上服务,暂且称之为O,发布完后,依赖O服务的2个服务C和W大量Time报警,并且这两个服务的CPU占用都飙到了40%左右,平时只有10%的样子。这时去看O服务的监控,Time并没有升高,QPS反倒降了一半。同时C和W服务器日志中出现了大量的WARNING,信息如下:java.lang.ClassNotFoundException:com.我是不可描述的信息.Propert

2016-12-03 00:08:26

装修后记

硬装墙漆品牌:多乐士价钱:1000数量:1桶18L面漆+2桶5L底漆地址:京昌回龙观建材城3区4号备注:官网找的门店,服务很差。进门点就推荐我买底漆,说底漆遮盖强,我进了两家店都这样讲。但从实际体验来看,不推荐买底漆,即使是无添加底漆也有味道,并且遮盖也不行,远远不如面漆厨房地砖品牌:蒙娜丽莎价钱:490数量:14片600mm地址:京昌回龙观建材城备注:橱柜底下没换,厨房地砖要

2016-11-26 11:07:14

Java奇淫巧技之Lombok

背景  我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString方法,当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那Java中有没有一种方式能够避免这种重复的劳动呢?答案是有,我们来看一下下面这张图,右面是一个简单的JavaBean,只定义了两个属性

2016-09-08 14:35:28

如何替换博客的搜索模块

CSDN的博客其实并不好用,问题很多,这里就不一一列举。前段时间突然发现,量子横道统计不知道从什么时候下线了,我当时正要跟同事去show一下我博客的pv,结果没show出来,我就反馈了什么时候把统计服务更换一下啊,当时是在一个升级公告底下反馈的,结果当然是没人鸟啦。这件事也没在意,官方不解决就拉倒吧,我可以自己去加统计,但后来某一天,我的博客加载异常缓慢,发现是量子横道的一个js加载一直是pendi

2016-08-14 20:56:38

MySQL字符集不一致导致索引失效

两个表join查询,却不走连接条件的索引。当索引无问题,sql也无问题时,就可以去看看这两个表的字符集是否一致,这是我耗费一个下午得出来的经验教训。

2016-08-02 20:26:41

如何实现基于商圈和地标的位置搜索

标题中包含了两个关键词,商圈和地标,先来解释一下商圈和地标这两个名词。商圈是一个地理范围,但并不是官方的划分,而是民间大致的划分,它通常提供了民众消费、娱乐的功能,产生了一个相对集中的活动区域,比如王府井、五棵松。地标是地图上的一个点,它通常在某个范围有一定知名度,大家都知道它,它可以是一个大厦、景点、酒店、饭店,比如人民大会堂、北京工人体育场、大裤衩大楼等等。那实现这两个的搜索有什么好处呢?

2016-07-19 18:11:46

夏天蚊子来了

哈哈

2016-06-19 13:47:53

Guava Predicate

Predicate<泛型>(断言,断定),是Guava中的一个基础接口,其内部只有一个方法`booleanapply(Tinput)`,这个方法输入是一个泛型对象,输出是一个布尔值,非常简单,下面来看一下这个小东西能帮助我们做

2016-06-18 23:45:24

Java线程(七):Callable和Future

接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。    Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返

2016-02-05 15:12:04

如何实现按距离排序、范围查找

简介现在几乎所有的O2O应用中都会存在“按范围搜素、离我最近、显示距离”等等基于位置的交互,那这样的功能是怎么实现的呢?本文提供的实现方式,适用于所有数据库。实现为了方便下面说明,先给出一个初始表结构,我使用的是MySQL:CREATETABLE`customer`(`id`INT(11)UNSIGNEDNOTNULLAUTO_INCREMENTCOMMENT'自增主键

2016-01-30 11:58:03
CSDN身份
  • 博客专家
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!