viidqgcg2s2nk_个人页

个人头像照片 viidqgcg2s2nk
个人头像照片
68
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2022年05月

  • 05.10 21:46:47
    发表了文章 2022-05-10 21:46:47

    LotusDB 设计与实现—3 内存 memtable

    顾名思义,memtable 是内存中维护的组件,在 LSM Tree 存储模型中,memtable 相当于一块内存 buffer,数据写入到 WAL 后,然后在 memtable 中更新。memtable 的数据积累到一定的阈值之后,批量 Flush 到磁盘,这样做的目的是延迟写磁盘,并且将随机的 IO 写入转换为批量的顺序 IO,这也是 LSM 存储模型的核心思路。
  • 05.10 21:45:20
    发表了文章 2022-05-10 21:45:20

    LotusDB 设计与实现—2 WAL 日志

    WAL 是 Write Ahead Log 的简称,通常叫做预写日志,是为了预防内存崩溃,保证数据不丢失的常用手段。WAL 是 LSM 存储模型中重要的组件,在 LotusDB 当中的重要性是一样的。
  • 05.10 21:40:49
    发表了文章 2022-05-10 21:40:49

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

    经历了大概 4 个月的打磨,LotusDB 的第一个 release 版本终于发布了,我看了下,有 200 多次 commit(接近 rosedb 一年多的 commit 次数了)。
  • 05.10 21:39:07
    发表了文章 2022-05-10 21:39:07

    学习 C++ 的一点浅薄经验

    工作所需,需要学习下 C++,今天就谈一下自己是怎么快速学习 C++,并且在工作中实际上手开发的,希望能够给大家一些启发。
  • 05.10 21:37:42
    发表了文章 2022-05-10 21:37:42

    实现分布式 kv—2 raft leader 选举

    raft 是一个分布式一致性算法,主要保证的是在分布式系统中,各个节点的数据一致性。raft 算法比较复杂,因为它所解决的分布式一致性问题本来就是一个比较棘手的问题,raft 算法的实现主要可以拆解为三个部分: • 领导选举 • 日志复制 • 安全性
  • 05.10 21:36:07
    发表了文章 2022-05-10 21:36:07

    实现分布式 kv—1 Standalone KV

    TinyKV 是 PingCAP 的一个开源课程:https://github.com/tidb-incubator/tinykv,旨在实现一个简易的分布式 kv,其中很多代码框架它已经提供了,我们只需要填充具体的逻辑即可。
  • 05.10 21:32:30
    发表了文章 2022-05-10 21:32:30

    Go 语言—数据结构和算法项目推荐

    Hello大家好,我是 roseduan,上一篇文章我为大家推荐了一些 Go 语言的入门练手项目,希望对你有所帮助。 今天分享的是一些数据结构和算法的项目,在我自己学习 Go 语言的时候,在掌握基础的语法知识之后,会针对性的刷一些 leetcode 题目,借此来巩固自己的语法知识,然后也能够保持解算法题目的感觉,可谓是一举两得吧。 所以从下面这些优秀的项目中,一定能够找适合你的项目哦!
  • 05.10 21:30:24
    发表了文章 2022-05-10 21:30:24

    Go 语言入门练手项目推荐

    大家好,我是 roseduan,经常看到一些小伙伴学习完 Go 语言的基础知识之后,无法找到合适的练手项目,然后就很迷茫。 今天我向大家推荐几个我觉得还不错的 Go 语言入门练手项目,你可以根据自己的兴趣,选择一个合适的,自己去看看,学习一下。
  • 05.10 21:28:09
    发表了文章 2022-05-10 21:28:09

    最简单的 gRPC 教程—4 多路复用、元数据、负载均衡

    前面已经介绍了几种 gRPC 的进阶特性,这篇文章再来看看 gRPC 的: • 多路复用 • 元数据 • 负载均衡 我把前面的 Order 服务再复制一份,作为本篇文章的代码演示。
  • 05.10 21:26:12
    发表了文章 2022-05-10 21:26:12

    最简单的 gRPC 教程—3 拦截器、截止、取消

    前面的两篇文章已经基本讲述了 gRPC 的使用方法,相信已经能够应对大多数开发场景了,只不过我们有时候需要针对业务作出一些定制,这时候就必须要更加了解 gRPC 的一些特性了,比如: • 拦截器 • 截止时间 • 取消
  • 05.10 21:24:31
    发表了文章 2022-05-10 21:24:31

    最简单的 gRPC 教程—2 通信模式

    gRPC 包含四种基础的通信模式: • 一元模式(Unary RPC) • 服务器端流 RPC(Server Sreaming RPC) • 客户端流 RPC(Client Streaming RPC) • 双向流 RPC(Bidirectional Streaming RPC)
  • 05.06 21:44:55
    发表了文章 2022-05-06 21:44:55

    Java 并发设计模式(二)

    Thread Local Storage 表示线程本地存储模式。 大多数并发问题都是由于变量的共享导致的,多个线程同时读写同一变量便会出现原子性,可见性等问题。局部变量是线程安全的,本质上也是由于各个线程各自拥有自己的变量,避免了变量的共享。
  • 05.06 21:26:36
    发表了文章 2022-05-06 21:26:36

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

    LotusDB 是一个基于 LSM Tree 进行设计,并结合 B+ 树优势的单机 KV 存储引擎,读写性能稳定、快速。
  • 05.06 21:23:33
    发表了文章 2022-05-06 21:23:33

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

    经历了大概 4 个月的打磨,LotusDB 的第一个 release 版本终于发布了,我看了下,有 200 多次 commit(接近 rosedb 一年多的 commit 次数了)。
  • 05.06 21:14:50
    发表了文章 2022-05-06 21:14:50

    rosedb 事务实践

    事务是传统关系型数据库中必不可少的功能,例如 Mysql、Oracle、PostgreSql 都支持事务,但是在 NoSQL 数据库中,事务的概念比较弱化,在实现上也没有关系型数据库那么复杂。
  • 05.06 21:05:55
    发表了文章 2022-05-06 21:05:55

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

    写这篇文章的目的,是为了帮助更多的人理解 rosedb,我会从零开始实现一个简单的包含 PUT、GET、DELETE 操作的 k-v 存储引擎,你可以将其看做是一个简易版本的 rosedb,就叫它 minidb 吧(mini 版本的 rosedb)。
  • 05.06 20:57:03
    发表了文章 2022-05-06 20:57:03

    Go 语言学习路线来啦

    时不时的有人问我一些关于 Go 语言学习路线、学习资源方面的问题,这篇文章就来详细说一说。借此希望给那些正在学习,或是想学习 Go 语言的朋友一些帮助。
  • 05.06 20:50:13
    发表了文章 2022-05-06 20:50:13

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

    大家好,我是 roseduan,今天我向大家推荐一下我写的一个 Go 语言实战项目—rosedb。
  • 05.06 20:48:02
    发表了文章 2022-05-06 20:48:02

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

    gRPC 是 Google 开源的一个高性能的 RPC(Remote Procedure Call) 框架
  • 05.06 20:40:06
    发表了文章 2022-05-06 20:40:06

    学习 Go 语言 1 — 基础语法(二)

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

    学习 Go 语言 1 — 基础语法(一)

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

    经典排序算法分析(二)

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

    经典排序算法分析(一)

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

    字符串匹配之 BM 算法

    字符串匹配是计算机科学领域中最古老、研究最广泛的问题之一,层出不穷的前辈们也总结了非常多经典的优秀算法,例如 BF 算法、RK 算法、BM 算法、KMP 算法,今天我介绍的主角是 BM 算法。
  • 05.06 18:17:32
    发表了文章 2022-05-06 18:17:32

    Mysql 索引模型 B+ 树详解

    首先,在了解 mysql 中的 B+ 树之前,我们需要搞懂什么是二叉树。二叉树是一种常见的非线形数据结构,数据是以一对多的形态组织起来的
  • 05.06 18:13:22
    发表了文章 2022-05-06 18:13:22

    收藏!Linux常用命令合集

    收藏!Linux常用命令合集
  • 05.06 18:10:35
    发表了文章 2022-05-06 18:10:35

    Java SDK 并发包全面总结(三)

    Java 并发包中的 Lock 和 Condition 主要解决的是线程的互斥和同步问题,这两者的配合使用,相当于 synchronized、wait()、notify() 的使用。
  • 05.06 18:09:35
    发表了文章 2022-05-06 18:09:35

    Java SDK 并发包全面总结(二)

    Java 并发包中的 Lock 和 Condition 主要解决的是线程的互斥和同步问题,这两者的配合使用,相当于 synchronized、wait()、notify() 的使用。
  • 05.06 18:08:00
    发表了文章 2022-05-06 18:08:00

    十大排序算法总结(三)

    排序算法中涉及到了两个概念: 原地排序:根据算法对内存的消耗情况,可以将算法分为原地排序和非原地排序,原地排序特指空间复杂度为 O(1) 的排序。 排序算法的稳定性:例如排序一个数组 [1, 5, 3, 7, 4, 9, 5],数组中有两个 5,排序之后是 [1, 3, 4, 5, 5, 7, 9],如果排序之后的两个 5 的前后顺序没有发生变化,那么称这个排序是稳定的,反之则是不稳定的。
  • 05.06 18:06:53
    发表了文章 2022-05-06 18:06:53

    十大排序算法总结(二)

    排序算法中涉及到了两个概念: 原地排序:根据算法对内存的消耗情况,可以将算法分为原地排序和非原地排序,原地排序特指空间复杂度为 O(1) 的排序。 排序算法的稳定性:例如排序一个数组 [1, 5, 3, 7, 4, 9, 5],数组中有两个 5,排序之后是 [1, 3, 4, 5, 5, 7, 9],如果排序之后的两个 5 的前后顺序没有发生变化,那么称这个排序是稳定的,反之则是不稳定的。
  • 05.06 18:04:38
    发表了文章 2022-05-06 18:04:38

    十大排序算法总结(一)

    排序算法中涉及到了两个概念: 原地排序:根据算法对内存的消耗情况,可以将算法分为原地排序和非原地排序,原地排序特指空间复杂度为 O(1) 的排序。 排序算法的稳定性:例如排序一个数组 [1, 5, 3, 7, 4, 9, 5],数组中有两个 5,排序之后是 [1, 3, 4, 5, 5, 7, 9],如果排序之后的两个 5 的前后顺序没有发生变化,那么称这个排序是稳定的,反之则是不稳定的。
  • 05.06 17:54:59
    发表了文章 2022-05-06 17:54:59

    Java 并发设计模式(三)

    Thread Local Storage 表示线程本地存储模式。 大多数并发问题都是由于变量的共享导致的,多个线程同时读写同一变量便会出现原子性,可见性等问题。局部变量是线程安全的,本质上也是由于各个线程各自拥有自己的变量,避免了变量的共享。
  • 05.06 17:49:09
    发表了文章 2022-05-06 17:49:09

    Java 并发设计模式(一)

    Thread Local Storage 表示线程本地存储模式。 大多数并发问题都是由于变量的共享导致的,多个线程同时读写同一变量便会出现原子性,可见性等问题。局部变量是线程安全的,本质上也是由于各个线程各自拥有自己的变量,避免了变量的共享。
  • 05.06 17:37:37
    发表了文章 2022-05-06 17:37:37

    Java SDK 并发包全面总结(一)

    Java 并发包中的 Lock 和 Condition 主要解决的是线程的互斥和同步问题,这两者的配合使用,相当于 synchronized、wait()、notify() 的使用。
  • 05.06 17:26:34
    发表了文章 2022-05-06 17:26:34

    Java 中的线程安全容器

    常用的一些容器例如 ArrayList、HashMap、都不是线程安全的,最简单的将这些容器变为线程安全的方式,是给这些容器所有的方法都加上 synchronized 关键字。
  • 05.06 17:21:58
    发表了文章 2022-05-06 17:21:58

    一文读懂 Java 中的原子类

    Java 并发包中的原子类都是基于无锁方案实现的,相较于传统的互斥锁,无锁并没有加锁、解锁、线程切换的消耗,因此无锁解决方案的性能更好,同时无锁还能够保证线程安全。
  • 05.06 17:12:39
    发表了文章 2022-05-06 17:12:39

    Java 并发学习笔记(二)

    请参看前一篇文章:Java 并发学习笔记(一)——原子性、可见性、有序性问题
  • 05.06 17:09:25
    发表了文章 2022-05-06 17:09:25

    吐血分享谷歌浏览器插件

    在如今的浏览器市场份额中,谷歌浏览器一家独大,霸占了将近百分之六十的份额。谷歌浏览器的流行程度可见一斑,我平时用的最多的浏览器就是它了。
  • 05.06 17:03:25
    发表了文章 2022-05-06 17:03:25

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

    计算机的 CPU、内存、I/O 设备的速度一直存在较大的差异,依次是 CPU > 内存 > I/O 设备,为了权衡这三者的速度差异,主要提出了三种解决办法: • CPU 增加了缓存,均衡和内存的速度差异 • 发明了进程、线程,分时复用 CPU,提高 CPU 的使用效率 • 编译指令优化,更好的利用缓存 三种解决办法虽然有效,但是也带来了另外的三个问题,分别就是并发 bug 产生的源头。
  • 05.06 17:00:09
    发表了文章 2022-05-06 17:00:09

    Spring boot 整合 Elasticsearch

    前面学习了 Elasticsearch 的简单基本操作,例如安装,基本的操作命令等,今天就来看看 es 和 Spring boot 的简单整合,实现增删改查的功能。众所周知,Spring boot 支持多种 NoSql 数据库,例如 redis、mongodb,elasticsearch 也是其中的一种。并且实现了 Spring boot 一贯的自动化配置,使用起来也是十分方便的。
  • 05.06 16:57:39
    发表了文章 2022-05-06 16:57:39

    Spring Data JPA设置表联合主键

    遇到了一个新的问题,就是如何使用 Spring Data JPA 建立表的联合主键?网上找了很多答案,自己也踩了一些坑,总结出了三种方式,记录一下。
  • 05.06 16:55:18
    发表了文章 2022-05-06 16:55:18

    Tomcat 上的项目参数传递问题

    部署在 Tomcat 上面的 Spring Boot 项目,在某些情况下,我们可能会修改配置文件中的参数,这样应该怎么做呢?
  • 05.06 16:50:41
    发表了文章 2022-05-06 16:50:41

    动态控制 Spring Boot 中的 @Scheduled 定时任务

    Spring Boot 中的 @Scheduled 注解为定时任务提供了一种很简单的实现,只需要在注解中加上一些属性,例如 fixedRate、fixedDelay、cron(最常用)等等,并且在启动类上面加上 @EnableScheduling 注解,就可以启动一个定时任务了。 但是在某些情况下,并没有这么简单,例如项目部署上线之后,我们可能会修改定时任务的执行时间,并且停止、重启定时任务等,因为定时任务是直接写死在程序中的,修改起来不是非常的方便。所以,简单记录一下自己的一些解决方案,仅供参考。
  • 05.06 16:48:20
    发表了文章 2022-05-06 16:48:20

    Elasticsearch 学习笔记——2.es 的简单命令操作

    首先,我们需要一些数据来支持我们的操作,这里我采用的是使用 filebeat 来采集数据到 es ,filebeat 也是 elastic 系列的产品,专门用来收集日志文件,使用十分的简单,在官网(下载地址)下载安装包解压,然后修改一下配置文件 filebeat.yml,
  • 05.06 16:43:30
    发表了文章 2022-05-06 16:43:30

    浅谈 Spring Boot 中的 @Conditional 注解

    Spring boot 中的 @Conditional 注解是一个不太常用到的注解,但确实非常的有用,我们知道 Spring Boot 是根据配置文件中的内容,决定是否创建 bean,以及如何创建 bean 到 Spring 容器中,而 Spring boot 自动化配置的核心控制,就是 @Conditional 注解。 @Conditional 注解是 Spring 4.0 之后出的一个注解,与其搭配的一个接口是 Condition,@Conditional 注解会根据具体的条件决定是否创建 bean 到容器中,接下来看看 @Conditional 注解的简单使用。
  • 05.06 16:39:19
    发表了文章 2022-05-06 16:39:19

    Elasticsearch 学习笔记——1.在 Linux 上安装 elasticsearch

    一个偶然的机会,leader 让我看看关于 es 的内容,之前我还未接触过,打开官网一看,发现关于 ealstic 的组件还真是不少,当然 ealsticsearch 应该是其中最流行、最有用和最受欢迎的了,截止到今天(2019.04.05),elasticsearch 在 Github 上面已经有 39k+ star 了。所以,最近在学习它,并且也想写一点学习笔记,分享出来供大家参考。
  • 05.06 16:33:53
    发表了文章 2022-05-06 16:33:53

    数据结构与算法——图

    前面说完了树这种数据结构,接下来在看看一种更加复杂的非线性数据结构——图。
  • 05.06 16:29:07
    发表了文章 2022-05-06 16:29:07

    数据结构与算法——堆的应用

    前面说完了堆这种数据结构,并且讲到了它很经典的一个应用:堆排序,其实堆这种数据结构还有其他很多的应用,今天就一起来看看,主要有下列内容: • 优先级队列 • 求 Top K 问题 • 求中位数
  • 05.06 16:26:46
    发表了文章 2022-05-06 16:26:46

    数据结构与算法——堆

    堆(Heap),其实是一种特殊的二叉树,主要满足了二叉树的两个条件: 1. 堆是一种完全二叉树,还记得完全二叉树的定义吗?叶节点都在最底下两层,最后一层的节点都靠左排列,并且除了最后一层,其他层的节点个数都要达到最大,这种树叫做完全二叉树。 2. 堆中的每个节点的值都必须大于等于(或者小于等于)其左右子节点的值。 对于堆中的每个节点都大于等于其左右子节点的值,叫做大顶堆,反之,则叫做小顶堆。看看下面的图就能懂了。
  • 发表了文章 2022-05-10

    LotusDB 设计与实现—3 内存 memtable

  • 发表了文章 2022-05-10

    LotusDB 设计与实现—2 WAL 日志

  • 发表了文章 2022-05-10

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

  • 发表了文章 2022-05-10

    学习 C++ 的一点浅薄经验

  • 发表了文章 2022-05-10

    实现分布式 kv—2 raft leader 选举

  • 发表了文章 2022-05-10

    实现分布式 kv—1 Standalone KV

  • 发表了文章 2022-05-10

    Go 语言—数据结构和算法项目推荐

  • 发表了文章 2022-05-10

    Go 语言入门练手项目推荐

  • 发表了文章 2022-05-10

    最简单的 gRPC 教程—4 多路复用、元数据、负载均衡

  • 发表了文章 2022-05-10

    最简单的 gRPC 教程—3 拦截器、截止、取消

  • 发表了文章 2022-05-10

    最简单的 gRPC 教程—2 通信模式

  • 发表了文章 2022-05-06

    Java 并发设计模式(二)

  • 发表了文章 2022-05-06

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

  • 发表了文章 2022-05-06

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

  • 发表了文章 2022-05-06

    rosedb 事务实践

  • 发表了文章 2022-05-06

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

  • 发表了文章 2022-05-06

    Go 语言学习路线来啦

  • 发表了文章 2022-05-06

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

  • 发表了文章 2022-05-06

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

  • 发表了文章 2022-05-06

    学习 Go 语言 1 — 基础语法(二)

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息