北川广海の梦
北川广海の梦
life's not out to get you
Home
Archives
Links
Me
Home
Archives
Links
Me
最新文章
动态规划 - 完全平方数
题目 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 示例 1: 输入:n = 12 输出:3 解释:12 = 4
7
0
0
2025-03-15
动态规划-打家劫舍
先贴一下题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的
7
0
0
2025-03-01
全文检索集群下得分计算
ES 搜索评分 ElasticSearch 对分布式支持十分出色。通过 shard 分片,能够将索引拆分到不同的节点,提供更优的整体性能。 然而这样的做法,虽然对可扩展性提供了很好的支持,但是搜索本身更加复杂了。 全文检索的返回结果都是有序的。一般来说,排名越高的文档,其搜索匹配度也就越高,越可能是
62
0
0
2024-02-08
浅聊字符串拼接
浅说字符串拼接 绝大多数语言,都提供了+这一操作符,支持字符串进行拼接。 并且在绝大多数语言中,字符串都是不可变的。那么在拼接时候,需要不断开辟新的内存,并将原本的内容移动到新的内存区域。 参考以下写法: func Concat(slice []string) string{ var result
48
0
0
2023-12-21
snapshot isolation隔离级别
Snapshot Isolation 一般来说,我们能从许多教科书与网络上的资料学习到,数据库的隔离级别分为四种: RU 读未提交,可以读取到其他事务未提交的更改,会导致脏读 RC 读已提交,只能读取其他事务已提交的更改,但是在两次读取间隔中,其他事务由提交,会导致两次读取不一致 RR 可重复读,在
数据库
86
0
0
2023-11-28
Bluge 文档写入过程
之前分析了 zincsearch 对于一个文档写入的处理,bluge 作为其底层的索引库,其处理细节同样非常重要。本文将梳理一下 bluge 如何处理 document 写入操作。 基本概念 bluge 对外提供了一个 writer 对象,应用层可以以此对文档进行 crud 操作。 应用层可以一次性
92
0
0
2023-09-13
zincsearch 写入document 过程
zincsearch zincsearch 是一个以 bluge 作为全文检索库的搜索引擎,基于 Go 编写,其最大的特点就是轻量级,对资源友好。相比 ElasticSearch 对机器的配置要求,zincsearch 更适合作为一个应用程序的检索,例如你可以很轻松的为自己的 博客、个人网站,基于
87
0
0
2023-08-15
Go实现反向代理,并自动处理重定向
反向代理 说起反向代理,第一印象估计都是超高人气的Nginx,其凭借强大的性能,吸引了不少使用者。 为什么需要反向代理? 隐藏服务器细节:在你的反向代理机器背后,就是你真正的业务服务器。它可能是由上千台机器组成的庞大集群,也可能是一个便宜好用的云服务器。外部请求想要访问你的服务器,必须通过反向代理。
Golang
329
0
0
2023-06-28
Ringbuffer环形队列
RingBuffer 环形缓冲队列,在系统中是非常常见的数据结构,许多场景都是用到了它,例如大名鼎鼎的Linux io_uring,它通过在共享内存中使用环形队列,避免了锁与内核切换的开销,大大提高性能。再比如Golang语言中的channel,在有缓冲的情况下,其内部实现也是通过环形队列的。不过它
数据结构
66
0
0
2023-06-20
Dgraph Raft RPC实现分析
Dgraph Raft RPC 实现分析 在raft集群中,各个节点的通信都是基于RPC实现的。各个节点需要通过rpc,实现消息的同步、心跳、快照传输等。etcd的raft库实现了核心算法。而具体的网络通信,需要应用自行实现。 etcd的raft example采用了http传输。dgraph则通过
数据库
63
0
0
2023-06-20
阅读更多