Skip to main content

如何设计与实现一个分布式索引框架(三):正排索引

· 14 min read

这是一个系列文章,大部分内容都来自我过去在小红书发现 Feed 团队工作期间的实践和经验。在介绍的过程中我会尽量不掺杂过多的业务细节,而专注于这背后我个人一些浅薄的设计思想,希望你在阅读完这些文章以后能够直接或者间接地拓展到不同的场景。

上一篇文章介绍了如何定义 schema、查询 API 以及怎样实现倒排索引,本篇将会着重介绍另一种重要的索引类型「正排索引」,以及跟正排索引密切相关的「二级索引」。

如何设计与实现一个分布式索引框架(二):Schema、API 及倒排索引

· 18 min read

这是一个系列文章,大部分内容都来自我过去在小红书发现 Feed 团队工作期间的实践和经验。在介绍的过程中我会尽量不掺杂过多的业务细节,而专注于这背后我个人一些浅薄的设计思想,希望你在阅读完这些文章以后能够直接或者间接地拓展到不同的场景。

上一篇文章中简单介绍了什么是推荐系统以及实现一个推荐系统的核心组件有哪些,文章最后引入了一个非常重要的概念「索引」,本篇将会首先从框架使用者的角度介绍如何定义索引,框架有哪些 API 可以使用以及从设计者的角度介绍如何实现一个简单的倒排索引。

如何设计与实现一个分布式索引框架(一):概览

· 8 min read

这是一个系列文章,大部分内容都来自我过去在小红书发现 Feed 团队工作期间的实践和经验。在介绍的过程中我会尽量不掺杂过多的业务细节[^1],而专注于这背后我个人一些浅薄的设计思想,希望你在阅读完这些文章以后能够直接或者间接地拓展到不同的场景。

在介绍什么是索引框架之前先了解一下我们当时面临的业务场景[^2],业界现在的 feed 流产品已经逐步从非个性化全面过渡到个性化,所谓的个性化 feed 其实就是基于机器学习的推荐系统

A Little Throught About Microservices

· 22 min read

知乎在 4 年前已经开始尝试服务化,至今也经历了好几个架构的变迁演化。我大约是 2013 年开始在知乎负责服务化的工作,对服务化的理解也从最初的模糊逐渐变得清晰,前段时间看了一篇叫做 [Microservices - Not A Free Lunch!][] 的文章,也想趁着这个机会梳理总结目前为止我的一些感悟和想法。

香港帆船培训记录

· 11 min read

曾经对香港的印象就是便宜的苹果电脑和遍地的茶餐厅,竟忘记了这是一个靠海的岛屿。作为一个在西部长大的孩子,对于海总是有很多憧憬。从小到大见过很多地方的海,有浑浊的,有碧蓝的,有挤满游客的,也有波涛汹涌的。其实海不一定就是蓝色的,只是人们习惯性地把自己的愿望加诸在别的东西身上,所以如果某一天你见到了不是蓝色的海,请不要抱怨它。

Auto Open Browser After Copy URL

· 3 min read

前段时间看过一篇叫 Automate Everyday Tasks 的博客,其中的一些见解很有意思,我们日常工作中有很多细小但是重复的事情,如果能够将某些工作自动完成,会让生活更加舒适。我很喜欢 Mac 上一个叫 PopClip 的小 app,可以大大减少很多重复的操作。这篇博客就是介绍如何制作一个 app,当复制 URL 时自动在浏览器中打开。

Little Tips: Redis MONITOR Command

· One min read

前段时间知乎的 cache 服务器中的某个数据总是错乱,想到了几个可能修改缓存的源头,同时在代码中搜索相关代码,把这些服务都重启了。但是问题依旧,只是没有之前那么严重。好吧,这下肯定是某个不知名的地方仍然在访问缓存。那就从根源查起,猛然发现 Redis 的 MONITOR 命令,可以实时打印出此时正在执行的命令,正合我意,修改缓存的命令我是知道的,只需要监测这个命令,然后就可以查到来源了。

redis-cli monitor | grep '"set" "alist"'