最新文章
动态规划 - 完全平方数
题目 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。
完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。
示例 1:
输入:n = 12
输出:3
解释:12 = 4
全文检索集群下得分计算
ES 搜索评分 ElasticSearch 对分布式支持十分出色。通过 shard 分片,能够将索引拆分到不同的节点,提供更优的整体性能。 然而这样的做法,虽然对可扩展性提供了很好的支持,但是搜索本身更加复杂了。 全文检索的返回结果都是有序的。一般来说,排名越高的文档,其搜索匹配度也就越高,越可能是
snapshot isolation隔离级别
Snapshot Isolation 一般来说,我们能从许多教科书与网络上的资料学习到,数据库的隔离级别分为四种: RU 读未提交,可以读取到其他事务未提交的更改,会导致脏读 RC 读已提交,只能读取其他事务已提交的更改,但是在两次读取间隔中,其他事务由提交,会导致两次读取不一致 RR 可重复读,在
Bluge 文档写入过程
之前分析了 zincsearch 对于一个文档写入的处理,bluge 作为其底层的索引库,其处理细节同样非常重要。本文将梳理一下 bluge 如何处理 document 写入操作。 基本概念 bluge 对外提供了一个 writer 对象,应用层可以以此对文档进行 crud 操作。 应用层可以一次性
zincsearch 写入document 过程
zincsearch zincsearch 是一个以 bluge 作为全文检索库的搜索引擎,基于 Go 编写,其最大的特点就是轻量级,对资源友好。相比 ElasticSearch 对机器的配置要求,zincsearch 更适合作为一个应用程序的检索,例如你可以很轻松的为自己的 博客、个人网站,基于

Go实现反向代理,并自动处理重定向
反向代理 说起反向代理,第一印象估计都是超高人气的Nginx,其凭借强大的性能,吸引了不少使用者。 为什么需要反向代理? 隐藏服务器细节:在你的反向代理机器背后,就是你真正的业务服务器。它可能是由上千台机器组成的庞大集群,也可能是一个便宜好用的云服务器。外部请求想要访问你的服务器,必须通过反向代理。

Ringbuffer环形队列
RingBuffer 环形缓冲队列,在系统中是非常常见的数据结构,许多场景都是用到了它,例如大名鼎鼎的Linux io_uring,它通过在共享内存中使用环形队列,避免了锁与内核切换的开销,大大提高性能。再比如Golang语言中的channel,在有缓冲的情况下,其内部实现也是通过环形队列的。不过它