数据库/存储学习路径推荐

2023-02-04
阅读 2 分钟
1.4k
我自己就是从业务自学转入数据库内核研发岗位的,根据自己的经历,简单总结了一下入门数据库相关的学习路线、学习资料、项目书籍推荐等,大家可以参考。必看课程CMU-15445 和 CMU-15721[链接]这两个不用多说,经典的数据库入门教程,由数据库的大佬 Andy Pavlo 亲自授课。可以了解到数据库的基本概念,例如存储、BufferP...

LotusDB 设计与实现—1 基本概念

2022-04-23
阅读 2 分钟
1.9k
在传统的 LSM Tree 架构中,增删数据均是追加有序写入到 SST 文件中,相同的 key 对应的数据可能存在多份,需要通过复杂的 compaction 策略来进行空间回收,这同时带来了空间放大和写放大问题。
封面图

用 Go 语言造了一个全新的 kv 存储引擎

2022-03-21
阅读 3 分钟
2.1k
经历了大概 4 个月的打磨,LotusDB 的第一个 release 版本终于发布了,我看了下,有 200 多次 commit(接近 rosedb 一年多的 commit 次数了)。
封面图

分布式存储转岗记

2021-10-08
阅读 1 分钟
1.6k
一些人可能知道,我是 19 年本科毕业的,最开始在一家小公司做 Java,然后今年初的时候,加入到 B 站做 Golang 开发,到目前为止工作两年多,都是纯业务开发。
封面图

rosedb 事务实践

2021-08-14
阅读 4 分钟
2.2k
事务是传统关系型数据库中必不可少的功能,例如 Mysql、Oracle、PostgreSql 都支持事务,但是在 NoSQL 数据库中,事务的概念比较弱化,在实现上也没有关系型数据库那么复杂。
封面图

从零实现一个 k-v 存储引擎

2021-07-01
阅读 6 分钟
5.8k
写这篇文章的目的,是为了帮助更多的人理解 rosedb,我会从零开始实现一个简单的包含 PUT、GET、DELETE 操作的 k-v 存储引擎,你可以将其看做是一个简易版本的 rosedb,就叫它 minidb 吧(mini 版本的 rosedb)。
封面图

Go 语言学习路线来啦

2021-06-14
阅读 4 分钟
3.2k
时不时的有人问我一些关于 Go 语言学习路线、学习资源方面的问题,这篇文章就来详细说一说。借此希望给那些正在学习,或是想学习 Go 语言的朋友一些帮助。
封面图

rosedb 上 Github Trending 啦!

2021-06-05
阅读 2 分钟
3.7k
昨天上午,我刚打开电脑,习惯性的逛了一下 Github ,点开了 Trending。因为 Github Trending 精选了一些最近比较活跃并且优质的开源项目,所以我没事的时候经常会看看,有时候也能够从别人的项目当中学习到很多。
封面图

使用 Go 实现一个简单的 k-v 数据库

2021-04-26
阅读 2 分钟
4.7k
rosedb 是一个简单、内嵌的 k-v 数据库,使用 Golang 实现,支持多种数据结构,包含 String、List、Hash、Set、Sorted Set,接口名称风格和 Redis 类似。
封面图

最简单的 gRPC 教程— 1 初识 gRPC

2021-03-26
阅读 4 分钟
17.9k
提供高效的进程间通信。gRPC 没有使用 XML 或者 JSON 这种文本格式,而是采用了基于 protocol buffers 的二进制协议;同时,gRPC 采用了 HTTP/2 做为通信协议,从而能够快速的处理进程间通信。
封面图

推荐几本学习 Go 语言的书籍

2021-03-23
阅读 1 分钟
3.6k
豆瓣评分挺高的,需要特别说说这本书里面的示例代码,质量非常高!如果跟着敲一遍,自己多理解的话,对于 Go 一定会有更好的理解。我目前也在看这本书,很多代码甚至还不是非常理解,需要多花一点时间。当然我觉得这也挺好的,与其看一些垃圾书,还不如认认真真的看完一本高质量的书来得爽!
封面图

我的 Java 转 Go 之路

2021-03-14
阅读 2 分钟
6.2k
从毕业到现在已经接近两年了,在这段时间里,我日常开发都是使用的 Java,因为大学自学的是 Java,然后毕业找到的工作也是做 Java 开发的。现在做 Go 其实也没多久,但还是想把自己的一些经历和学习经验都记录下来,要是能帮到你就更好了哦!
封面图

学习 Go 语言 1 — 基础语法

2020-09-05
阅读 7 分钟
2.3k
最近在闲来无事之际开始学习点 Go 语言,Go 语言在近几年很火,有 Docker 和 Kubernetes 这两大杀器做支撑,它已经是云计算领域主流的编程语言了,并且有蚕食部分 C、C++、Java 等领域的趋势,怀着一些对新技术的兴趣,我开始学习了 Go 语言,在对其有了简单的了解之后,我渐渐开始喜欢上这门语言了。

经典排序算法分析

2020-06-06
阅读 17 分钟
1.8k
排序指的是将一组对象按照特定的逻辑顺序重新排列的过程,排序的应用十分广泛,可以说是无处不在,它在商业数据处理和现代科学计算中发挥着举足轻重的作用,目前已知的应用最广泛的排序算法—快速排序,更是被誉为了 20 世纪科学和工程领域的十大算法之一。

字符串匹配之 BM 算法

2020-04-27
阅读 11 分钟
9k
字符串匹配是计算机科学领域中最古老、研究最广泛的问题之一,层出不穷的前辈们也总结了非常多经典的优秀算法,例如 BF 算法、RK 算法、BM 算法、KMP 算法,今天我介绍的主角是 BM 算法。

Mysql 索引模型 B+ 树详解

2020-03-29
阅读 3 分钟
7.4k
首先,在了解 mysql 中的 B+ 树之前,我们需要搞懂什么是二叉树。二叉树是一种常见的非线形数据结构,数据是以一对多的形态组织起来的,我画了一张图来帮助你理解:

收藏!Linux常用命令合集

2020-03-28
阅读 3 分钟
3k
2.2 ls 路径,查看指定路径下的文件列表,可以加上多个路径,例如:ls /usr /etc,分别显示根目录下的 user 目录和 etc 目录。

终究与大学说了再见

2019-07-09
阅读 3 分钟
1.2k
大学生活已经结束了,纵然心中有万般不舍,但还是得收拾行囊去往人生的下一站,迎接新的挑战。到上海已经有几天了,安顿下来之后,花点时间写一篇文章,记录总结一下自己的整个大学生活。

十大排序算法总结

2019-07-08
阅读 10 分钟
2.2k
排序算法的稳定性:例如排序一个数组 [1, 5, 3, 7, 4, 9, 5],数组中有两个 5,排序之后是 [1, 3, 4, 5, 5, 7, 9],如果排序之后的两个 5 的前后顺序没有发生变化,那么称这个排序是稳定的,反之则是不稳定的。

说说高考填志愿

2019-06-21
阅读 2 分钟
1.2k
人这一生的选择有很多,但关键的却寥寥无几,去哪儿上学,从事什么样的行业,和谁结婚生子,每个关键的选择都对我们的人生轨迹产生重要的影响。高考志愿,对大多数人来说,应该是他们人生中面临的第一个重大选择了。

Java 并发设计模式

2019-06-05
阅读 11 分钟
1.6k
大多数并发问题都是由于变量的共享导致的,多个线程同时读写同一变量便会出现原子性,可见性等问题。局部变量是线程安全的,本质上也是由于各个线程各自拥有自己的变量,避免了变量的共享。

Java SDK 并发包全面总结

2019-05-29
阅读 17 分钟
2.3k
Java 并发包中的 Lock 和 Condition 主要解决的是线程的互斥和同步问题,这两者的配合使用,相当于 synchronized、wait()、notify() 的使用。

Java 中的线程安全容器

2019-05-25
阅读 3 分钟
4k
常用的一些容器例如 ArrayList、HashMap、都不是线程安全的,最简单的将这些容器变为线程安全的方式,是给这些容器所有的方法都加上 synchronized 关键字。

一文读懂 Java 中的原子类

2019-05-24
阅读 5 分钟
3.7k
Java 并发包中的原子类都是基于无锁方案实现的,相较于传统的互斥锁,无锁并没有加锁、解锁、线程切换的消耗,因此无锁解决方案的性能更好,同时无锁还能够保证线程安全。

Java 并发学习笔记(二)

2019-05-16
阅读 5 分钟
1.1k
等待通知机制的流程一般是这样的:线程首先获取互斥锁,当不满足某个条件的时候,释放互斥锁,并进入这个条件的等待队列;一直等到满足了这个条件之后,通知等待的线程,并且需要重新获取互斥锁。

吐血分享谷歌浏览器插件

2019-05-13
阅读 2 分钟
3.2k
干净清爽是它给我的最直观的印象,访问速度快则可能是让大多数人选择的原因了。 不仅如此,大量的谷歌浏览器插件丰富了浏览器的功能,使得它更加的贴心。你可以根据自己的需求下载相应的插件,让自己的使用体验加倍提升!

Java 并发学习笔记(一)——原子性、可见性、有序性问题

2019-05-10
阅读 2 分钟
1.6k
计算机的 CPU、内存、I/O 设备的速度一直存在较大的差异,依次是 CPU > 内存 > I/O 设备,为了权衡这三者的速度差异,主要提出了三种解决办法:

Spring boot 整合 Elasticsearch

2019-04-30
阅读 3 分钟
4.2k
前面学习了 Elasticsearch 的简单基本操作,例如安装,基本的操作命令等,今天就来看看 es 和 Spring boot 的简单整合,实现增删改查的功能。众所周知,Spring boot 支持多种 NoSql 数据库,例如 redis、mongodb,elasticsearch 也是其中的一种。并且实现了 Spring boot 一贯的自动化配置,使用起来也是十分方便的。

职场中的坑,的一个一个踩

2019-04-27
阅读 2 分钟
1.4k
这几天心情稍显低落,犯的错误的确有点儿多,大多是非常细微的事情,发生之后让人感觉无可奈何,却又往往在情理之中。比如前几天 leader 给了我一个文件,这文件默认是 Excel 打开的,我傻乎乎的打开之后再保存,结果文件中的数据格式就变了。然后我就根据这个错误格式的文件写代码,导致这种类型的文件处理全部出错。当...

Spring Data JPA设置表联合主键

2019-04-12
阅读 3 分钟
22.5k
遇到了一个新的问题,就是如何使用 Spring Data JPA 建立表的联合主键?网上找了很多答案,自己也踩了一些坑,总结出了三种方式,记录一下。