理解 LSM Tree : 是什么让数据库这么能写?

log-structured merge-tree (LSM tree) 是一种被精心设计的数据结构,常用于处理大量写入的场景。通过对写入操作进行顺序写入优化实现性能提升。LSM tree 是很多数据库内部的核心数据结构,包括BigTable, Cassandra, Scylla,和 RocksDB。SSTablesLSM tree 通过一种叫做 SSTable (Sorted Strings Table) 的格式,持久化到硬盘上。正如其名,SSTable 是一种用来存储有序的键值对的格式,其中...阅读全文

Segmentfault 2021-02-27 08:32:33 terasum

golang(0)的安装和vscode开发环境

下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ Mac 和 windows 直接下一步安装就好。 Golang检测 go version go env GOROOT 和GOPATH GOROOT和GOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径。 而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录。。GOPATH 会在1.17后废弃不用。用...阅读全文

简书 2021-02-24 10:36:32 hk_faith

Golang基础教程(一)Go的安装与应用

Go学习网站 https://studygolang.com/ Go的优缺点 优点 学习曲线容易: 语法简洁、便于短时间上手 效率: 具有快速的编译时间、开发效率和运行效率高 齐全的标准库: go的标准库基本都很稳定,并且包含互联网应用、系统编程、网络编程等库 (标准库网址:https://studygolang.com/pkgdoc) 部署方便: 二进制文件,可复制性部署 简单的并发: 简单的即可实现并发和异步编程 稳定性: go具有强大的编译检查严格的编码规范、完整的软件生命周期工具,具有很...阅读全文

简书 2021-02-24 10:36:32 jack_num1

pprof最全功能

支持什么使用模式 Report generation:报告生成 Interactive terminal use:交互式终端使用 Web interface:Web 界面 可以做什么 CPU Profiling:CPU 分析,按照一定的频率采集所监听的应用程序 CPU(含寄存器)的使用情况,可确定应用程序在主动消耗 CPU 周期时花费时间的位置 Memory Profiling:内存分析,在应用程序进行堆分配时记录堆栈跟踪,用于监视当前和历史内存使用情况,以及检查内存泄漏 Block Profi...阅读全文

简书 2021-02-24 10:33:19 不经意丶执着Jason

golang使用kafka报错c.client.config.Config.Consumer.Offsets.CommitInterval undefined问题

在使用kafka时报错: c.client.config.Config.Consumer.Offsets.CommitInterval undefined 排查后发现当前的github.com/Shopify/sarama 版本是v1.26.0 的版本; 将sarama的版本从go.mod里删除,并重新下载,实际上就是把版本升级到v1.28.0; 再次启动时编译通过。 参考资料:https://github.com/bsm/sarama-cluster/issues/307阅读全文

简书 2021-02-24 10:33:19 时彬斌

Go语言环境搭建

一、Golang语言的官网首先我们登录Golang的官方网站:https://golang.org/ 因为Google和中国的关系,直接登录Golang的官网,需要翻墙。当然你也可以登录Golang的国内网站:https://golang.google.cn/ 二、下载在Mac、Windows和Linux三个平台上都支持Golang。您可以从https://golang.org/dl/下载相应平台的安装包。 该网站在国内不容易访问,所以可以访问中国对应的https://golang.google...阅读全文

简书 2021-02-24 10:33:18 安易学车

2021-02-23:给定一个正数n,求n的裂开方法数。规定:后面的数不能比前面的数小 。比如4的裂开方法有: 1+1+1+1、1+1+2、1+3、2+2、4,5种,所以返回5。

2021-02-23:给定一个正数n,求n的裂开方法数。规定:后面的数不能比前面的数小 。比如4的裂开方法有: 1+1+1+1、1+1+2、1+3、2+2、4,5种,所以返回5。 福哥答案2021-02-23: 自然智慧即可。 1.递归。有代码。 2.动态规划。dp是二维数组。有代码。 3.动态规划,空间压缩。两个一维数组搞定。有代码。 代码用golang编写,代码如下: package main import "fmt" func main() { for i := 20; i < 40; i...阅读全文

简书 2021-02-24 10:32:47 福大大架构师每日一题

Go:使用Swagger和热加载构建REST-API

【译文】原文地址 本教程是关于如何在Go中使用自动生成Swagger文档和热加载构建一个REST-API。热加载不仅仅意味着热加载我们的Go应用程序,包括重新构建和重新启动,还需要在前台重新创建所有的Swagger文档。 我假设你已经对用Go构建REST API很熟悉了,所以我就不重复关于这方面的很多内容了。 值得一提的是,我们当前的设置,特别是Swagger部分,是建立在https://github.com/swaggo/swag这个神奇的库上的。这个库可以使我们能够从模型和控制器当中自动生成...阅读全文

简书 2021-02-24 10:32:42 汪明军_3145

手撸golang 基本数据结构与算法 堆排序

缘起 最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一) 本系列笔记拟采用golang练习之 堆排序 堆排序的特点是利用了数据结构中的堆。 首先,在堆中存储所有的数据,并按降序来构建堆。 为了排序,需要再从堆中把数据一个个取出来。 堆排序一开始需要将n个数据存进堆里,所需时间为O(nlogn)。 每轮取出最大的数据并重构堆所需要的时间为O(logn)。 由于总共有n轮,所以重构后排序的时间也是O(nlog n)。 因此,整体来看堆排序的时间复杂度为O(nlog n)。 这样来看,堆排序...阅读全文

简书 2021-02-24 10:32:40 老罗话编程

手撸golang 基本数据结构与算法 堆排序

缘起最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一)本系列笔记拟采用golang练习之堆排序堆排序的特点是利用了数据结构中的堆。 首先,在堆中存储所有的数据,并按降序来构建堆。 为了排序,需要再从堆中把数据一个个取出来。 堆排序一开始需要将n个数据存进堆里,所需时间为O(nlogn)。 每轮取出最大的数据并重构堆所需要的时间为O(logn)。 由于总共有n轮,所以重构后排序的时间也是O(nlog n)。 因此,整体来看堆排序的时间复杂度为O(nlog n)。 这样来看,堆排序的运行时...阅读全文

Segmentfault 2021-02-27 08:32:33 ioly

golang语言学习之go语言变量

Go 语言变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。 Go语言变量定义格式Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字,声明变量的一般形式是使用 var 关键字: var identifier type ,其中 var为变量定义关键字,identifier为变量名,type为变量类型 如果需要定义多个变量,则: var identifier1, identifier2 type 举例: package main import...阅读全文

51CTO博客 2021-02-23 14:48:18 清白之年

Java反射与Golang反射简单对比

参考链接: Java反射0x00 前言 前段时间学习了golang的基础语法,发现其反射的概念与Java的差别挺大,做个简单对比,记录一下。 为了测试Java反射,创建如下User类: public class User { public String username; private String password; public User() {} public User(String username, String password) { this.username = usernam...阅读全文

51CTO博客 2021-02-23 20:05:20 wx592a7561e9493

深度解析sync WaitGroup源码及其实现原理

目录WaitGroup介绍WaitGroup的实现AddDoneWaitWaitGroup介绍waitGroup ,也是在go语言并发中比较常用的语法,所以在这里我们一起剖析 waitGroup 的使用方式及其源码解读。WaitGroup 也是sync 包下一份子,用来解决任务编排的一个并发原语。它主要解决了并发-等待问题:比如现在有三个goroutine,分别为goroutineA,goroutineB,goroutineC,而goroutineA需要等待goroutineB和goroutin...阅读全文

Segmentfault 2021-02-26 21:32:33 迈莫coding

深度解析sync WaitGroup源码及其实现原理

![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/dd80a6028a66bd592130590f7c1fac58.png#pic_center) # 目录 - WaitGroup介绍 - WaitGroup的实现 - Add - Done - Wait # WaitGroup介绍 `waitGroup` ,也是在go语言并发中比较常用的语法,所以在这里我们一起剖析 waitGroup 的使用方式及其...阅读全文

Go语言中文网 2021-02-23 14:23:52 memo012

go-admin在线开发平台学习-4[细节解析]

紧接着上一期的内容,继续对go-admin的一些细节进行解析。通用的增删改查方法在go-admin/common/actions下封装了通用的增删改查方法。在对这些方法进行说明前,先移步到另一个文件夹下go-admin/common/dto/generate.go&type.go这俩个文件的内容在整个web请求中都至关重要,首先看type.go里面只有俩个接口,根据笔者的实践这俩个接口的作用应该是这样的Index1、绑定查询参数2、分页实体Control1、from表单或url实例绑定2、dto...阅读全文

51CTO博客 2021-02-23 12:47:02 mb601ce5f172788

Redis的bitmap如何在Golang中使用

为什么需要Bitmapbitmap的主要应用场景为低空间的去重业务场景,比如活跃用户统计和用户行为统计。Golang如何操作func main() { rdb := redis.NewClient(&redis.Options{ Addr: "127.0.0.1:6379", Password: "123456", // no password set DB: 0, // use default DB }) // scmd := rdb.GetRange("mybitmap", 0, 1480)...阅读全文

51CTO博客 2021-02-23 12:28:21 mb601ce0d29b15f