自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

迎风的舵手

勤学似春起之苗

  • 博客(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 1160

原创 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 3108

原创 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 7693

原创 求两数之和

给定一个整数数组 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 339

原创 c++实现快速排序算法

#include &lt;unistd.h&gt;#include &lt;stdio.h&gt;using namespace std;void quickSort(int arr[], int left, int right) { if (left &gt; right) { return; } int i = left; int j = right; int bas...

2019-01-16 15:09:32 7697

转载 golang源码剖析-内存管理-2

接上篇:[ https://blog.csdn.net/robertkun/article/details/80140594 ] 在真正进入内存分配过程之前,还需要了解一下整个内存分配器是如何创建的以及初始化成什么样子。完成内存分配器创建初始化的函数是runtime·mallocinit,看一下简化的源码:voidruntime·mallocinit(void){ // 创建mh...

2018-05-02 23:07:42 512

转载 golang源码剖析-内存管理-1

转自[http://skoo.me/go/2013/10/13/go-memory-manage-system-alloc ] 这个拿来主义虽然不太好, 但总比不拿强.. 吃水不忘挖井人,感谢原文作者分享.内存布局结构图 我把整个核心代码的逻辑给抽象绘制出了这个内存布局图,它基本展示了Go语言内存分配器的整体结构以及部分细节(这结构图应该同样适用于tcmalloc)。从此结构图来看,...

2018-04-29 00:50:20 2387

转载 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 970

转载 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 1354

转载 golang源码剖析-网络库的基础实现-1

转自: http://skoo.me/go/2014/04/21/go-net-core 偶遇大神写的文章, 分析的很透彻, 转过来学习了.Go语言的出现,让我见到了一门语言把网络编程这件事情给做“正确”了,当然,除了Go语言以外,还有很多语言也把这件事情做”正确”了。我一直坚持着这样的理念——要做”正确”的事情,而不是”高性能”的事情;很多时候,我们在做系统设计、技术选型的时候,都被“高...

2018-04-25 22:57:32 1028

转载 golang源码剖析-Goroutine与调度器-2

转自: 原文地址 此文文风优雅, 通俗易懂, 让人理解起来比较容易, 很是不错. goroutine与调度器我们都知道Go语言是原生支持语言级并发的,这个并发的最小逻辑单元就是goroutine。goroutine就是Go语言提供的一种用户态线程,当然这种用户态线程是跑在内核级线程之上的。当我们创建了很多的goroutine,并且它们都是跑在同一个内核线程之上的时候,就需要一...

2018-04-22 17:00:30 1680

转载 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 3794

原创 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 819

原创 golang使用aes库实现加解密

golang实现加密解密的库很多, 这里使用的是aes库+base64库来实现. 使用时,需要指定一个私钥,来进行加解密, 这里指定是: var aeskey = []byte(“321423u9y8d2fwfl”)上代码:package mainimport ( "fmt" "crypto/cipher" "crypto/aes" "bytes

2018-01-31 15:39:42 19749 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 2205

原创 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 4957

原创 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 1854

原创 关于c++中继承和虚函数的一些思考

做为一个这么多年的老程序员,有时候是应该反思一下自已,好多基础的东西都丢掉了. 今天有时间再复习一下,温故而知新嘛. 致每个在路上的人,努力不放弃. 上代码:#include class CA {public: virtual void vfunc1() { printf("CA:vfunc1()\n"); }

2018-01-27 11:10:18 252

原创 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 18574

原创 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 5232

原创 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 1475

转载 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 8336

转载 golang-goroutine的调度原理

首先简单的介绍一下进程,线程和协程三者的关系 用户线程和内核线程之间的调用关系 goroutine的运行机制 goroutine的三个重要结构 goroutine的调度原理 转自:https://www.zhihu.com/question/20862617

2018-01-18 09:15:02 518

原创 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 534

翻译 BitCoin对等节点发现协议

> 第6章 比特币网络新节点是怎样加入网络中的? 当建立一个或多个连接后,新节点将包含自身ip和addr的信息,发送给相邻节点, 相邻节点接收到信息后,再将此条addr信息,转播给它的相邻节点.如次依次转播下去.区块链技术交流群: 329299693

2018-01-16 07:45:04 1518 1

转载 BT原理分析

BitTorrent协议。BT全名为BitTorrent,是一个p2p软件,你在下载download的同时,也在为其他用户提供上传upload,因为大家是“互相帮助”,所以不会随着用户数的增加而降低下载速度。下面是一般用ftp,http等分享流程: 下面是用BitTorrent分享的流程: 其实跟ED也十分相似,ED跟BT不同的地方有:ED–要连上一个固定server BT

2018-01-15 21:54:29 2023

转载 区块链入门

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚。我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿、为什么挖矿越来越难等问题。需要说明的是,我并非这

2018-01-08 08:47:43 4596

原创 分布式一致性算法-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 572

原创 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 5896

原创 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 896

原创 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 10883 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 45919

原创 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 793

原创 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 1915

原创 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 27748 2

原创 Go使现快速排序

go使现快速排序package main/*Go实现快速排序算法思路:在数组中取出一个元素作为基准值,把其它元素分为两组:“大的”是那些大于基准值的元素,“小的”是那些小于基准值的元素,递归对这两组做排序。快排快速的原因:一旦知道了某个元素比基准值小,它就不需要与那些大的元素比较。而大的元素也不需要与小的元素比较。原理解析:http://blog.csdn.net/...

2017-12-07 14:35:30 378

原创 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 1456

原创 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 8303

原创 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 232

原创 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 1830

tidb官方中文手册-高清无码有标签

tidb官方中文手册,从官网下的,高清无码有标签,总共1800多页。

2020-07-23

时间序列数据库的秘密

时间序列数据库的秘密, 作者详细介绍了数据的索引, 压缩, 加载和分布式计算的原理, 十分清晰, 受益良多.

2018-09-29

influxdb-1.6.3.x86_64.rpm

influxdb 流式数据库 centos下可以使用yum下载, 配置yum方法: [influxdb] name = InfluxDB Repository - RHEL $releasever baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable enabled = 1 gpgcheck = 0 gpgkey = https://repos.influxdata.com/influxdb.key

2018-09-27

深入浅出以太坊-汪晓明

深入浅出以太坊-汪晓明深入浅出以太坊-汪晓明深入浅出以太坊-汪晓明

2018-02-02

区块链技术指南

第1-2章为基础和入门内容,着重是区块链入门介绍,并讲解区块链的一些基础概念。本书详细、全面地介绍了区块链的基础知识与概念,剖析了区块链的架构、底层实现细节以及加密技术,并配合行业应用案例,常见问题等,全面解读大热的区块链技术实现与应用。第3-10章,着重是区块链架构剖析,并讲解区块链的关键技术,包括密码学和共识算法;提供比特币开发指南以及以太坊智能合同开发指南;同时介绍HyperLedger,讨论区块链的常见问题和典型的解决方案。第11章,从架构变革的角度探讨IT发展的原动力,并提供对区块链对未来IT发展的一些展望。

2018-01-12

CockroachDB中文文档

CockroachDB中文文档, 通过网络资料整理,CockroachDB中文文档, 通过网络资料整理

2017-10-21

Nginx模块开发与架构解析.pdf

2016-06-29

最新电子喜帖源码

最新电子喜帖源码

2015-06-16

Qt5中文教程

Qt5 中文 教程 写的很详细的一版. 是从网上直译过来的. 对于想学习Qt5的朋友来说, 是不可多得的宝贝..

2014-12-22

程序员生存定律

很多人非常想知道自己的未来是什么样子的,迫切到一定程度甚至会找算命先生。如 果并不是想得到一个精确结果,这事儿其实并没有想的那么难。程序员的人生看起来五花八 门,可以是Windows 系,可以是Android 系,可以是iPhone 系等等,但如果为之做点抽象, 那就会发现人生出口的类别其实不多,接下来我们就结合例子来看看程序员的人生中最可能 的几个出口。这些出口里有大部分人的未来景象。

2014-12-22

Qt录音机QAudioInput

Qt录音机 基于QAudioInput 和 QAudioOutput 实现了 录音, 麦克风音量监听, 麦克风音量调节, 还有一个去噪算法, 不太理想, 注掉了

2014-05-29

qt实现360安仔精灵

qt实现360安仔精灵

2014-05-26

Qt的卡拉OK效果

Qt的卡拉OK效果 实现卡拉OK效果 主要是使用了QPainter的叠加 pTmp setCompositionMode QPainter::CompositionMode DestinationIn ; pTmp drawImage 0 0 pmMask ; pTmp setCompositionMode QPainter::CompositionMode DestinationOver ;

2014-05-05

华为C8816 Root工具

华为C8816 Root工具

2014-04-30

华为C8816申请解锁码(解锁)工具.zip

华为C8816申请解锁码(解锁)工具.zip

2014-04-30

AnkhSvn-2.5.12040.zip最新版

最新版 可以用 最新版 可以用

2014-03-28

Java连接Oralce数据库小例

############################################################################################### 1.DBFunctions.java ############################################################################################### 定义数据库的地址和实例名称: private final String oracleDriverName = "oracle.jdbc.driver.OracleDriver"; private final String oracleUrlToConnect = "jdbc:oracle:thin:@192.168.2.16:1521:orcl"; 定义用户名和密码: public Connection getConnection() { try { this.myConnection = DriverManager.getConnection(oracleUrlToConnect, "scott", "tiger"); ############################################################################################### 1.DlgJob.java ############################################################################################### 点击JOB按据时, 执行连接和数据库的查询语句并返回结果: public void connectToDataBase() { System.out.println("connectToDataBase"); DBFunctions dbfuns = new DBFunctions(); try { // 连接 dbfuns.getConnection(); System.out.println("Now begin to excute............."); // 查询 List<Object[]> rslist = new ArrayList<Object[]>(); ResultSet newrs = dbfuns .executeQuery("select * from emp order by empno"); try { while (newrs.next()) { String id = newrs.getString("EMPNO"); String title = newrs.getString("ENAME"); String min = newrs.getString("SAL"); String max = newrs.getString("DEPTNO");

2013-11-29

文件夹大小查看器

文件夹大小查看器,简单实用,需要修改注册表,来完成注册. 详见:http://blog.csdn.net/robertkun/article/details/9035857

2013-06-06

网络基础_DHCP配置

网络基础 A 类地址1.0.0.0~126.255.255.255 子网掩码255.0.0.0 127.0.0.0 到127.255.255.255 是保留地址,用做循环测试 B 类地址128.0.0.0~191.255.255.255 子网掩码:255.255.0.0; C 类地址192.0.0.0~223.255.255.255 子网掩码:255.255.255.0; D 类地址224.0.0.0~239.255.255.254 E 类地址240.0.0.0~255.255.255.255 DHCP(Dynamic Host Configuration Protocal) 动态主机配置协议 作用:自动配置主机的IP地址、子网掩码、网关及DNS等TCP/IP信息,降低客户端IP地址配置的复杂度和网络的管理成本。如果路由器能够转发DHCP请求,只需要在一个子网中配置DHCP服务器就可以向其他子网提供TCP/IP配置的服务支持

2013-03-15

TFTP&VSFTP; 的配置与使用

TFPT,VSFTP,服务器配置 附详细说明中文解释.

2013-03-15

NFS&SSH;服务配置

学习目标: 了解NFS 与RPC(Remote Procedure Call)的关系 掌握/ext/exports 的格式和常用的共享参数 熟悉客户端工具showmount mount 1.NFS 和RPC NFS本身没有提供信息传输的协议和功能,但NFS 却能让我们通过网络进行文件共享,这是因为NFS使用了一些其他的传输协议. SSH无密钥传输

2013-03-15

kickstart无人值守安装

kickstart无人值守安装 目录: 一、搭建好Yum源: 二、安装Vsftp服务: 三、复制PXE启动时需要的文件资料 四、安装配置DHCP服务: 五、kickstart配置文件的生成: 六、复制Linux系统安装文件: 七、确定相关服务的状态:

2013-03-15

linux iptables防火墙配置

linux 防火墙配置 iptables

2013-03-15

win7下安装centos双系统

win7下安装centos双系统, 详细说明,共12页。

2012-11-11

Advanced Qt Programming

Advanced Qt ProgrammingAdvanced Qt ProgrammingAdvanced Qt ProgrammingAdvanced Qt ProgrammingAdvanced Qt ProgrammingAdvanced Qt Programming

2011-03-23

Qt 透明窗口实现.各个Item 管理自己的透明度

透明窗口实现 本程序是在vs2010加Qt4.7.1版本上编译通过.

2011-03-23

Qt 各模块详解图 超详细

Qt 各模块详解图超详细 超详细超详细超详细超详细

2010-07-08

GPU Programming And Cg Language Primer 1rd Edition.pdf

GPU Programming And Cg Language Primer 1rd Edition.pdf

2010-04-10

Boost And STL学习资料

Boost And STL学习资料 Boost And STL学习资料

2010-04-10

QT QGraphicsScene

QGraphicsScene 的简单应用,和图元缩放的功能。。

2010-04-10

双向链表的创建,查找,添加,删除

双向链表的创建,查找,添加,删除 dlink createdlist(int *array,int len) { dlink head; // * 双向串列的指标 */ dlink before; // * 前一节点的指标 */ dlink new_node; // * 新节点的指标 */ int i; // * 建立第一个节点 */ // * 配置节点记忆体 */ head = ( dlink ) malloc(sizeof(dnode)); if ( !head ) // * 检查记忆体指标 */ return NULL; head->data = array[0]; // * 建立节点内容 */ head->front = NULL; // * 设定指标初值 */ head->back = NULL; // * 设定指标初值 */ before = head; // * 指向第一个节点 */ for ( i = 1; i data = array[i]; new_node->front = NULL; // * 设定指标初值 */ new_node->back = before; // * 将新节点指向前节点 */ before->front = new_node; // * 将前节点指向新节点 */ before = new_node; // * 新节点成为前节点 */ } return head; // * 传回串列起始指标 */ }

2009-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除