行如风 Blog

我干了什么 究竟拿了时间换了什么

go bounds check(边界检测)

本文作者:刘代明,现在奇虎360搜索技术部任web服务端技术专家职位。 祝大家阅读愉快。 前言 我们在阅读go源码时,很多地方在操作数组或切片时,会有bounds check的注释, 比如go map在对tophash指定索引赋值(go map的源码阅读见 go map源码阅读及与php map实现对比这篇文章): 1 2 3 dst.b.tophash[dst.i&...

go map源码阅读及与php map实现对比

本文作者:刘代明(常用网名:行如风,常用游戏名:学长的棉被),一个文艺青年(纳尼?青年?是的,你没看错:世界卫生组织(2020年)对青年的定义:18-65周岁[来自百度百科])。现在奇虎360搜索技术部任web服务端技术专家职位。 本文为作者原创,祝大家阅读愉快。 前言 之前在openresty协程调度对比go协程调度文章中分析了go程序启动过程(从go程序开始执行到用户的mai...

boltdb源码阅读

本文作者:刘代明(常用网名:行如风,常用游戏名:学长的棉被),一个文艺青年(纳尼?青年?是的,你没看错:世界卫生组织(2020年)对青年的定义:18-65周岁[来自百度百科])。现在奇虎360搜索技术部任web服务端技术专家职位。 本文为作者原创,祝大家阅读愉快。 前言 最近抽时间看了boltdb的源码,代码量不大(大概4000行左右),而且支持事务,结构也很清晰,由于比较稳定,...

Openresty协程调度对比Go协程调度

本文作者:刘代明(常用网名:行如风,常用游戏名:学长的棉被),一个文艺青年(纳尼?青年?是的,你没看错:世界卫生组织(2020年)对青年的定义:18-65周岁[来自百度百科])。现在奇虎360搜索技术部任web服务端技术专家职位。 本文为作者原创,祝大家阅读愉快。 在web编程领域,Openresty与Go均有十分优秀的处理能力,在面对高并发的web编程,两者一般都是首选的技术方案...

从一个模糊词查询需求的处理方案讨论到一种极速匹配方案的实现

本文作者:刘代明(常用网名:行如风,常用游戏名:学长的棉被),一个文艺青年(纳尼?青年?是的,你没看错:世界卫生组织(2020年)对青年的定义:18-65周岁[来自百度百科])。现在奇虎360搜索技术部任web服务端技术专家职位。 本文为作者原创,祝大家阅读愉快。 背景 某天,我们的产品经理突然找到我,说我们的广告业务上线后效果不错,但是需要做敏感词过滤处理,需要接入一个模...

从MongoID的生成讨论分布式唯一ID生成方案

背景 MongoDB,想必大家都使用过,在数据落盘后,查询该条数据时,会发现其会自动生成一条”_id”,如: 1 2 3 db.test.insert({"name":"tom"}) 查询结果: { "_id" : ObjectId("5fd049327fbb28868f4660a5"), "name" : "tom" } MongoID作为主键索引,即使是集群...

记一次cpu 100%问题排查

背景 服务器用的Openresty,代码用Lua+Php编写 处理 登录到机器,发现nginx一个worker进程出现了cpu 100%的情况: 使用pstack 多次查看该worker进程,也都是同样结果。 看来是代码出现了热循环,接下来要做的就是定位到热循环 的地方。 该接口除了使用lua外,还有c的扩展。 所以想着使用采样工具并生成火焰图来定位问题。这里使用春...

git push避免每次输入密码

1 2 在git push时每次都要输入用户名和密码是一件很痛苦的事 解决方法如下: 1.git bash进入当前项目(windows机在当前项目中点击右键->选择git bash here打开git bash) 2.在git bash中输入: 1 git config credential.helper store 3.git push到远程仓库时,输入正确用户...

leetcode-最小路径和 记录自己的解题思路

1 记录下自己的解题步骤,备忘。64题 题目: 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 1 2 3 4 5 6 7 8 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 ...

hdfs检测文件是否存在

1 使用test命令进行检测 平时在做任务处理时,需要对hdfs文件进行检测,如果hdfs文件存在,则进行后续处理,这时可以使用test命令进行处理。 具体如下: test 使用方法:hadoop fs -test -[ezd] URI 1 2 3 4 选项: -e 检查文件是否存在。如果存在则返回0。 -z 检查文件是否是0字节。如果是则返回0。 -d 如果路径是个...