自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 seaweedfs使用说明

基本概念master 存储映射关系,文件和fid的映射关系 weed masterNode 系统抽象的结点,抽象为datacenter、rack、datanodedatacenter 数据中心,包含多个rack,类似一个机房rack :属于一个datacenter,类似机房中的一个机架datanode : 存储节点,存储多个volume,类似机架中的一个机器 weed volumev...

2018-12-17 14:34:40 1223

原创 seaweedfs

{FastDFS它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。Seaweedfs (https://github.com/chrislusf/seaweedfs)Seaweedfs 的设计原理是基于 Facebook 的一篇图片存储系统的论文 Facebook-Haystack 说到这个,毛剑也在依这个论文写bfs, 正在开发中,可以跟看从小到大一步...

2018-12-14 18:06:22 994

转载 九大排序算法

https://blog.csdn.net/foreverling/article/details/43798223

2018-12-13 18:26:53 209

原创 为什么hashtable被弃用了

作者Hashtable的作者:HashMap的作者:Hash Map的作者比Hashtable的作者多了著名顶顶的并发大神Doug Lea。他写了util.concurrent包。著有并发编程圣经Concurrent Programming in Java: Design Principles and Patterns 一书。他的个人主页: http://g.oswego.edu/Jo...

2018-12-13 16:46:01 4946 3

转载 五大常用算法总结

引言据说有人归纳了计算机的五大常用算法,它们是贪婪算法,动态规划算法,分治算法,回溯算法以及分支限界算法。虽然不知道为何要将这五个算法归为最常用的算法,但是毫无疑问,这五个算法是有很多应用场景的,最优化问题大多可以利用这些算法解决。算法的本质就是解决问题。当数据量比较小时,其实根本就不需要什么算法,写一些for循环完全就可以很快速的搞定了,但是当数据量比较大,场景比较复杂的时候,编写for循环就...

2018-12-13 15:54:08 192

原创 五大常用算法

https://www.cnblogs.com/xsyfl/p/6921687.html

2018-12-13 15:39:59 170

原创 timestamp字段的“诡异”规则

有同学说timestamp字段的规则比较“诡异”。手册里面说的比较复杂,这里简单说明一下MySQL中 timestamp字段的一些规则。分为两部分定义规则:1、 timestamp字段有三个属性:a) 是否允许NULL。默认为not null。b) 默认值。可以设定为default CURRENT_TIMESTAMP 或default 某个常量。...

2018-12-13 10:24:57 401

原创 golang中map使用channel串行化多读多写

type MyMap struct { Data map[int]string ch chan func()}func NewMyMap() *MyMap { m := &MyMap{ Data: make(map[int]string), ch: make(chan func()), } go func() { for { (<-m.ch)...

2018-12-10 16:47:09 1993

原创 给你一个字符串,写出所有可能的ip

package mainimport ( "fmt" "os" "strconv")func getip(source string) (ips []string) { length := len(source) if length > 12 || length < 4 { return nil } i...

2018-12-10 15:40:56 2110

原创 UUID

package mainimport ( "fmt" "github.com/satori/go.uuid")func main() { // Creating UUID Version 4 // panic on error u1 := uuid.Must(uuid.NewV4()) fmt.Printf("UUIDv4: %s\n", u1.String()) //...

2018-12-07 15:24:36 837

原创 分享一个日志系统

https://github.com/uber-go/zap

2018-12-06 15:34:02 139

原创 Go 2.0终于要来了!

Go Language 2.0 终于要来了!早在今年8月份,Go团队便提出了2.0版本的设计草案,包括两大主题:错误处理和泛型。而今天,团队开发人员发话了:“是时候采取行动了!”Go 1和Go 2主要的区别在于决策的制定——Go 1的诞生是一个小团队的努力,而Go 2将更受其社区的影响。目前在Go 2的提案中,大约有120个未解决的问题被标记为Go 2的提案,每一个问题都与重要的库或语言更改...

2018-12-06 12:23:23 541

原创 grpc报错

1.消息体太小error: “grpc: received message larger than max (6115095 vs. 4194304)”message: “grpc: received message larger than max (6115095 vs. 4194304)”s := grpc.NewServer(grpc.MaxMsgSize(size), grpc.Ma...

2018-11-30 19:28:13 3071

转载 Linux三剑客之awk命令

https://www.cnblogs.com/ginvip/p/6352157.html

2018-11-30 16:10:46 89

原创 MySQL 分区建索引

介绍mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表,从“information_schema.INNODB_SYS_TABLES”系统表可以看到每个分区都存在独立的TABLE_ID,由于Innodb数据和索引都是保存在".ibd"文件当中(从INNODB_SYS_INDEXES系统表中也可以得到每个索引都是对应各自的分区(primary key和uniq...

2018-11-29 15:04:40 482

原创 MYSQL优化流程

使用 show status 了解执行情况慢查询mysql> show status like ‘%slow%’;±--------------------±------+| Variable_name | Value |±--------------------±------+| Slow_launch_threads | 0 || Slow_querie...

2018-11-28 16:32:58 94

原创 ID生成器方案

Snowflake算法百度的:https://github.com/baidu/uid-generator/blob/master/README.zh_cn.mdsony的;https://github.com/sony/sonyflake其他:https://github.com/bwmarrin/snowflake

2018-11-28 12:07:56 620

转载 MYSQL数据库分区、分表、分库和读写分离使用场景和注意事项

https://www.cnblogs.com/bluebluesky/articles/6413831.html

2018-11-28 10:32:16 1255

原创 Go高性能日志库zap详细分析

https://mp.weixin.qq.com/s/i0bMh_gLLrdnhAEWlF-xDw

2018-11-22 18:14:20 2080

原创 Golang(Go语言)内置函数之append

append主要用于给某个切片(slice)追加元素如果该切片存储空间(cap)足够,就直接追加,长度(len)变长;如果空间不足,就会重新开辟内存,并将之前的元素和新的元素一同拷贝进去第一个参数为切片,后面是该切片存储元素类型的可变参数slice := append([]int{1,2,3},[]int{4,5,6}...)fmt.Println(slice) //[1 2 3 4 5...

2018-11-20 17:10:19 989

原创 Golang(Go语言)内置函数之copy用法

Golang(Go语言)内置函数之copy用法该函数主要是切片(slice)的拷贝,不支持数组将第二个slice里的元素拷贝到第一个slice里,拷贝的长度为两个slice中长度较小的长度值示例:s := []int{1,2,3}fmt.Println(s) //[1 2 3]copy(s,[]int{4,5,6,7,8,9})fmt.Println(s) //[4 5 6]有一种...

2018-11-20 17:08:02 1426

转载 Go调优神器trace介绍

https://mp.weixin.qq.com/s/nf_-AH_LeBN3913Pt6CzQQ

2018-11-20 15:06:49 826

转载 GoGenerateTools

https://github.com/golang/go/wiki/GoGenerateToolsgo generate is only useful if you have tools to use it with! Here is an incomplete list of useful tools that generate code.goyacc – Yacc for Go.stri...

2018-11-20 10:59:08 261

转载 自动代码生成的 5 点建议

//go:generate 的引入使得 Go 语言在构建过程中集成自动代码生成工具更加简单。stringer 使得编写重复代码更轻松,而 yacc 和 ragel 这类程序则让优化解析器的生成变得可能。在 GoGenerateTools 上你可以找到关于这类工具的一份不完整的列表。给自动生成的代码做标记。为了让构建工具能够识别出自动生成的代码,必须使用一个符合下列正则表达式的注释:^// Co...

2018-11-20 10:57:53 249

转载 Go面试经典

http://mini.eastday.com/bdmip/180420102150604.html

2018-11-19 14:15:35 870

转载 Golang精编100题-搞定golang面试

https://blog.csdn.net/itcastcpp/article/details/80462619

2018-11-19 14:14:53 868

原创 Go语言中range的简介

for range创建了每个元素的副本,而不是直接返回每个元素的引用,如果使用该值变量的地址作为指向每个元素的指针,就会导致错误,在迭代时,返回的变量是一个迭代过程中根据切片依次赋值的新变量,所以值的地址总是相同的,导致结果不如预期。可以看到每次循环在map中插入新的内容后,map的长度确实发生了变化,但是循环只执行了三次,正好是执行range前map的长度。说明range在执行之初就构建好...

2018-11-16 17:41:36 1046

原创 软件开发模式对比(瀑布、迭代、螺旋、敏捷)

1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,...

2018-11-09 18:17:26 117

原创 Golang context 包简介

概述Golang 的 context Package 提供了一种简洁又强大方式来管理 goroutine 的生命周期,同时提供了一种 Requst-Scope K-V Store。但是对于新手来说,Context 的概念不算非常的直观,这篇文章来带领大家了解一下 Context 包的基本作用和使用方法。Context 基本数据结构Context interfaceContext int...

2018-11-09 16:57:30 375

原创 设计模式总结

-AbstractFactory.go : 抽象工厂模式(C)使用场景:一个对象族(或是一组没有任何关系的对象)都有相同的约束。涉及不同操作系统的时候,都可以考虑使用抽象工厂模式 -Adapter.go : 适配器模式(J)使用场景:你有动机修改一个已经投产中的接口时,适配器模式可能是最适合你的模式。比如系统扩展了,需要使用一个已有或新建立的类,但这个类又不符合系统的接口,怎么...

2018-11-09 14:28:49 109

原创 nsq

nsqd -http-address -max-body-size -tcp-address -mem-queue-sizecurl -d 'hello world 2' 'http://127.0.0.1:4151/pub?topic=test'nsqd 默认tcp 4150 http 4151nsqadmin.exe -nsqd-http-address=127.0.0.1:41...

2018-11-09 14:28:41 230

原创 Go语言操作redis redigo

package mainimport ( "fmt" "github.com/garyburd/redigo/redis")var EventConfs = map[string]int{ "blacklistSensitivity": 2, //"黑名单人脸识别灵敏度 1-宽松 2-常规 3-严格 "discoveryAutoEnroll&a

2018-11-09 14:28:26 666

原创 Go语言通用方法笔记

package commonimport ( "bufio" "bytes" "crypto/sha256" "encoding/hex" "fmt" "io" "log" "os" &quot

2018-11-09 14:28:12 183

原创 Go语言的正则验证常用方法笔记

package commonimport ( "errors" "fmt" "regexp" "unicode/utf8")/*[:graph:] 图形字符 (相当于 [!-~])[:word:] 单词字符(相当于 [0-9A-Za-z_])[:alnum:] 字母数字 (相当于 [0-9A-Za-z])[:

2018-11-09 14:27:39 286

原创 Go语言的100个常识

1 channel实现CSP模型2 内存分配:tcmalloc3 动态库buildmode功能???4 缺乏真正意义上的调试器吗???5 依赖包管理问题???6 编译器将未使用的局部变量定义当作错误7 函数可以返回函数类型func test() func(int) { return func(x int) { println("x:", x) }}8 defer定义延迟调用...

2018-11-08 17:46:29 276

原创 Go语言常用代码

1.并发var waitGroup = new(sync.WaitGroup)waitGroup.Add(num)waitGroup.Wait()func xxx(){ ... waitGroup.Done()}2.打印代码处理时间func TimeCost(str string, start time.Time) { terminal := time.Since(start...

2018-11-08 17:44:58 441

原创 Go语言字符串操作

//求绝对值func CalcAbs(a int) (ret int) { ret = (a ^ a>>31) - a>>31 return}input := []byte("hello golang base64")// 演示base64编码encodeString := base64.StdEncoding.EncodeToString(input)...

2018-11-08 17:44:00 174

原创 Go语言操作mysql的第三方包 gorm

初始化 gorm.Open返回的是连接池 如下方法可以做连接池配置: db.DB().SetMaxIdleConns(10) db.DB().SetMaxOpenConns(100)argsStr :="root:123456@tcp(10.58.17.238:3306)/wz?charset=utf8&parseTime=True&loc=Local"db, e...

2018-11-08 17:43:15 2404 1

原创 Go语言的定时器timer包

package mainimport ( "fmt" "time")func main(){ ticker:=time.NewTicker(time.Second*3) go func() { for now := range ticker.C { fmt.Printf("%v\n", now) } }() ticker.Stop() t2:=tim...

2018-11-08 17:40:17 283

原创 Go语言time包

func main(){ /*预定义的时间格式*/ t1:=time.Now().Format(time.RFC3339) fmt.Println("t1:",t1) if t,err:=time.Parse(time.RFC3339,t1);err!=nil{ fmt.Println("parse:",err) }else{ fmt.Println("t2:",t.String...

2018-11-08 17:38:44 420

beego中文开发文档

beego中文开发文档.pdf 

2018-11-08

空空如也

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

TA关注的人

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