- 博客(315)
- 资源 (31)
- 收藏
- 关注
原创 tidb 4.0 从mysql导入到tidb数据库
使用dumpling和lightning实现数据导入工具包下载地址备份所有库备份指定库启动tikv-importer启动tidb-lightningtikv-importer 配置tidb-lightning 配置首先我们使用dumpling导出mysql中的数据,dumpling也是tidb自带的一个工具,将mysql的数据导出为数据文件。然后再使用lightning将数据文件导入到Tidb数据库中。dumpling和lightning都有和Tidb版本相对应的版本,下载工具包的时候要注意和当前安装
2020-07-23 11:01:19
1201
原创 tidb 4.0 安装部署
使用官方推荐的tiup安装部署,并按照线上生产环境部署。节点分布使用最小化部署方案,只要保留pd,tidb,tikv三个模块即可。 节点 功能 备注 10.1.1.1 pd/tidb 中控机/调度机 10.1.1.2 tikv 数据库 10.1.1.3 tikv
2020-07-15 14:38:33
3150
原创 go 协程返回值处理
go 协程返回值处理package mainimport "fmt"import "sync"var ch = make(chan int)func do(lock *sync.Mutex, ct *int) { lock.Lock() *ct++ lock.Unlock() ch <- 1}func main() { fmt....
2019-12-23 18:03:17
7759
原创 求两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]func tw...
2019-01-16 17:24:42
358
原创 c++实现快速排序算法
#include <unistd.h>#include <stdio.h>using namespace std;void quickSort(int arr[], int left, int right) { if (left > right) { return; } int i = left; int j = right; int bas...
2019-01-16 15:09:32
7757
转载 golang源码剖析-内存管理-2
接上篇:[ https://blog.csdn.net/robertkun/article/details/80140594 ] 在真正进入内存分配过程之前,还需要了解一下整个内存分配器是如何创建的以及初始化成什么样子。完成内存分配器创建初始化的函数是runtime·mallocinit,看一下简化的源码:voidruntime·mallocinit(void){ // 创建mh...
2018-05-02 23:07:42
528
转载 golang源码剖析-内存管理-1
转自[http://skoo.me/go/2013/10/13/go-memory-manage-system-alloc ] 这个拿来主义虽然不太好, 但总比不拿强.. 吃水不忘挖井人,感谢原文作者分享.内存布局结构图 我把整个核心代码的逻辑给抽象绘制出了这个内存布局图,它基本展示了Go语言内存分配器的整体结构以及部分细节(这结构图应该同样适用于tcmalloc)。从此结构图来看,...
2018-04-29 00:50:20
2401
转载 golang源码剖析-网络库的基础实现-3
转自: http://skoo.me/go/2014/04/21/go-net-core 接上一篇: https://blog.csdn.net/robertkun/article/details/80101591runtime中的epoll事件驱动抽象层其实在进入net库后,又被封装了一次,这一次封装从代码上看主要是为了方便在纯Go语言环境进行操作,net库中的这次封装实现在poll/fd...
2018-04-27 23:04:45
984
转载 golang源码剖析-网络库的基础实现-2
转自: http://skoo.me/go/2014/04/21/go-net-core 接上一篇: https://blog.csdn.net/robertkun/article/details/80087304想要弄明白网络库的底层实现,貌似只要弄清楚echo服务器中的Listen、Accept、Read、Write四个函数的底层实现关系就可以了。本文将采用自底向上的方式来介绍,也就是从...
2018-04-26 23:17:27
1370
转载 golang源码剖析-网络库的基础实现-1
转自: http://skoo.me/go/2014/04/21/go-net-core 偶遇大神写的文章, 分析的很透彻, 转过来学习了.Go语言的出现,让我见到了一门语言把网络编程这件事情给做“正确”了,当然,除了Go语言以外,还有很多语言也把这件事情做”正确”了。我一直坚持着这样的理念——要做”正确”的事情,而不是”高性能”的事情;很多时候,我们在做系统设计、技术选型的时候,都被“高...
2018-04-25 22:57:32
1037
转载 golang源码剖析-Goroutine与调度器-2
转自: 原文地址 此文文风优雅, 通俗易懂, 让人理解起来比较容易, 很是不错. goroutine与调度器我们都知道Go语言是原生支持语言级并发的,这个并发的最小逻辑单元就是goroutine。goroutine就是Go语言提供的一种用户态线程,当然这种用户态线程是跑在内核级线程之上的。当我们创建了很多的goroutine,并且它们都是跑在同一个内核线程之上的时候,就需要一...
2018-04-22 17:00:30
1689
转载 golang源码剖析-Goroutine源码分析-1
转自:[https://studygolang.com/articles/7734] 本文针对的go版本是截止2016年6月29日最新的Go1.7。一、Golang简介1.1概述Golang语言是Google公司开发的新一代编程语言,简称Go语言,Go 是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块...
2018-04-22 07:23:56
3830
原创 c++创建一个linux deamon进程
正规的方法, 创建一个deamon进程,需要很多步骤 1. fork() 2. 子进程setsid() 3. 主进程wait() 4. chdir() 5. umask()非正规方法创建一个deamon进程的步骤: 1. 创建一个子进程fork(), 创建子进程的目的是为了后面的设置进程组ID. 2. 子进程执行setsid(), 执行setsid()有两个目的, 一是创建一...
2018-02-09 17:11:37
834
原创 golang使用aes库实现加解密
golang实现加密解密的库很多, 这里使用的是aes库+base64库来实现. 使用时,需要指定一个私钥,来进行加解密, 这里指定是: var aeskey = []byte(“321423u9y8d2fwfl”)上代码:package mainimport ( "fmt" "crypto/cipher" "crypto/aes" "bytes
2018-01-31 15:39:42
19783
3
原创 关于c++析构函数要不要加virtual的问题
1.析构函数加virtual#include using namespace std;class CA {public: CA() { cout "CA()" << endl; } virtual ~CA() { cout "~CA()" << endl; }};class CB : public CA {public: CB() { cout "CB
2018-01-31 11:31:54
2283
原创 C++的构造和析构顺序
子类的构造和析构过程, 上代码:#include using namespace std;class CA {public: CA() { cout "CA()" << endl; } ~CA() { cout "~CA()" << endl; }};class CB : public CA {public: CB() { cout "CB()" <<
2018-01-30 10:07:03
4975
原创 golang的defer,recover,panic用法
示例如下:package mainimport ( "fmt")func defer_call() { defer func() { fmt.Println("before") }() defer func() { if p := recover(); p != nil { fmt.Prin
2018-01-29 21:15:43
1866
原创 关于c++中继承和虚函数的一些思考
做为一个这么多年的老程序员,有时候是应该反思一下自已,好多基础的东西都丢掉了. 今天有时间再复习一下,温故而知新嘛. 致每个在路上的人,努力不放弃. 上代码:#include class CA {public: virtual void vfunc1() { printf("CA:vfunc1()\n"); }
2018-01-27 11:10:18
263
原创 golang文件读取-按行读取
golang文件读取-按行读取a.txt文件内容: ABCDEFGHI HELLO GOLANGpackage mainimport ( "fmt" "os" "io" "bufio" "strings")func main() { fileName := "C:\\Robert\\日志分析\\tools_go
2018-01-25 16:49:15
18603
原创 golang文件读取-按指定BUFF大小读取
golang文件读取-按指定BUFF大小读取a.txt文件内容: ABCDEFGHI HELLO GOLANGpackage mainimport ( "fmt" "os" "io")func main() { fileName := "C:\\Robert\\日志分析\\tools_go\\vdn_sqlInterface\\
2018-01-25 16:43:09
5345
原创 golang使用net库实现一个简单的服务端和客户端通信
golang使用net库实现一个简单的服务端和客户端通信服务端代码: 服务端启动监听,默认127.0.0.1, 设置端口9090package mainimport ( "fmt" "runtime" "net" "os")func recvFile(conn net.Conn) { fmt.Println("new connecti
2018-01-25 15:50:14
1500
转载 golang解决数据库中null值的问题
转自: http://blog.csdn.net/qq_15437667/article/details/78780945要点 从数据库读取可能为null值得值时,可以选择使用sql.NULL***来读取;或者使用IFNULL、COALESCE等命令让数据库查询值返回不为”“或者NULL 若需要往数据库中插入null值,则依然可以使用sql.NULL***存储所需的值,然后进行插
2018-01-25 09:11:33
8379
转载 golang-goroutine的调度原理
首先简单的介绍一下进程,线程和协程三者的关系 用户线程和内核线程之间的调用关系 goroutine的运行机制 goroutine的三个重要结构 goroutine的调度原理 转自:https://www.zhihu.com/question/20862617
2018-01-18 09:15:02
527
原创 golang实现一个正经的接口
使用gin和gjson库打造的一个轻量级的http接口.package mainimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "github.com/gin-gonic/gin" "net/http" "strings" "github.com/t
2018-01-17 21:51:26
537
翻译 BitCoin对等节点发现协议
> 第6章 比特币网络新节点是怎样加入网络中的? 当建立一个或多个连接后,新节点将包含自身ip和addr的信息,发送给相邻节点, 相邻节点接收到信息后,再将此条addr信息,转播给它的相邻节点.如次依次转播下去.区块链技术交流群: 329299693
2018-01-16 07:45:04
1553
1
转载 BT原理分析
BitTorrent协议。BT全名为BitTorrent,是一个p2p软件,你在下载download的同时,也在为其他用户提供上传upload,因为大家是“互相帮助”,所以不会随着用户数的增加而降低下载速度。下面是一般用ftp,http等分享流程: 下面是用BitTorrent分享的流程: 其实跟ED也十分相似,ED跟BT不同的地方有:ED–要连上一个固定server BT
2018-01-15 21:54:29
2045
转载 区块链入门
区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚。我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿、为什么挖矿越来越难等问题。需要说明的是,我并非这
2018-01-08 08:47:43
4610
原创 分布式一致性算法-Raft
我们知道Raft来源与Paxos,Paxos最早是由莱斯利·兰伯特于1990提出。Paxos的大规模应用是在Google的广告系统中。Raft可以看做是简化版本的Paxos。Raft动画演示:(真心推荐) http://thesecretlivesofdata.com/raft/Raft的三种状态: 1.Leader(领导者) 2.Follower(跟随者) 3.Candidate(候选者)
2018-01-04 01:26:31
586
原创 golang实现Http Server
实现Http Server 主要使用golang 的 gin包, 接口使用Post发送, 数据格式采用Json格式, 注意, 定义Json格式时, 变量的首字母,必须大写, 要不然会识别失败.Json格式的解析和打包使用golang的默认json包 打包: json.Marshal() 解包:json.Unmarshal()Http Server 代码:package mainimport (
2018-01-04 00:35:48
5916
原创 golang flag示例
golang flag示例golang flag 包是用来解析命令行参数的.package mainimport ( "flag" "fmt")func test_flag() { data_path := flag.String("D", "/home/manu/sample/", "DB data path") log_file := flag.String("
2018-01-04 00:21:14
910
原创 golang toml解析
TOML 的全称是 Tom’s Obvious, Minimal Language,因为它的作者是 GitHub 联合创始人 Tom Preston-Werner。TOML 的目标是成为一个极简的配置文件格式。TOML 被设计成可以无歧义地被映射为哈希表,从而被多种语言解析。github: https://github.com/BurntSushi/toml 安装:go get gith
2018-01-04 00:18:45
10913
2
原创 go判断文件夹是否存在,并创建
go判断文件夹是否存在,并创建package mainimport ( "fmt" "os")// 判断文件夹是否存在func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if o
2017-12-11 20:48:58
46256
原创 go连接mysql,redis并完成日志字符处理实例
go连接mysql,redis并完成日志字符处理实例package main// 引入所需包import ( "compress/gzip" "fmt" "io/ioutil" "os" "strings" //"reflect" "github.com/garyburd/redigo/redis" "math" "strco
2017-12-11 15:11:07
813
原创 go连接mysql
go连接mysqlpackage mainimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql")func main() { db, err := sql.Open("mysql", "root:***@tcp(127.0.0.1:3200)/server_conf?charset=utf8"
2017-12-08 16:08:08
1927
原创 go遍历文件夹和文件
go读取文件和目录package mainimport ( "fmt" "io/ioutil" "os" "strings")//获取指定目录下的所有文件和目录func GetFilesAndDirs(dirPth string) (files []string, dirs []string, err error) { dir, err := ioutil
2017-12-07 18:28:54
28001
2
原创 Go使现快速排序
go使现快速排序package main/*Go实现快速排序算法思路:在数组中取出一个元素作为基准值,把其它元素分为两组:“大的”是那些大于基准值的元素,“小的”是那些小于基准值的元素,递归对这两组做排序。快排快速的原因:一旦知道了某个元素比基准值小,它就不需要与那些大的元素比较。而大的元素也不需要与小的元素比较。原理解析:http://blog.csdn.net/...
2017-12-07 14:35:30
390
原创 Go实现二分法查找
Go实现二分法查找package main/*Go实现二分法查找二分法查找基实就是折半查找, 提前条件是数组为有序数组思路:1. 确定中间位置k2. 将要查找的值T与array[k]比较,若相等,则查找成功。若array[k] 1;若array[k] > T, 则应该向小的方向找,k=k-1; */import ( "fmt")func BinSearc
2017-12-06 21:55:58
1477
原创 go操作redis的有序集合(zset)
go操作redis的有序集合(zset)package mainimport ( "fmt" "github.com/garyburd/redigo/redis")func main() { // 连接redis数据库,指定数据库的IP和端口 conn, err := redis.Dial("tcp", "36.99.16.197:6379") if err
2017-12-06 18:26:46
8348
原创 mysql的安装
mysql的安装 数据库版本:mysql-5.6.321 配置安装数据库所需的磁盘2 创建mysql的安装目录及数据库存放目录mkdir -p /vdncloud/mysql mkdir -p /vdncloud/mysql/data3 创建用户组和用户groupadd mysql useradd -r -g mysql mysql4 解压mysql的源码包tar -zxv -f mysq
2017-12-06 11:32:41
241
原创 go连接redis
go连接redispackage mainimport ( "fmt" "github.com/garyburd/redigo/redis")func main() { // 连接redis数据库,指定数据库的IP和端口 conn, err := redis.Dial("tcp", "x.x.x.x:6379") if err != nil {
2017-12-06 11:23:07
1841
influxdb-1.6.3.x86_64.rpm
2018-09-27
区块链技术指南
2018-01-12
Nginx模块开发与架构解析.pdf
2016-06-29
Qt录音机QAudioInput
2014-05-29
Qt的卡拉OK效果
2014-05-05
Java连接Oralce数据库小例
2013-11-29
文件夹大小查看器
2013-06-06
网络基础_DHCP配置
2013-03-15
NFS&SSH;服务配置
2013-03-15
kickstart无人值守安装
2013-03-15
Advanced Qt Programming
2011-03-23
GPU Programming And Cg Language Primer 1rd Edition.pdf
2010-04-10
双向链表的创建,查找,添加,删除
2009-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人