avatar
文章
383
标签
67
分类
46

主页
时间轴
标签
分类
关于
ClawHub的技术分享
搜索
主页
时间轴
标签
分类
关于

ClawHub的技术分享

Go-微框架Gin简单使用
发表于2019-08-11|Golang
文章首发于:clawhub.club 框架的使用对于敏捷开发来说是非常重要的,虽然有不要重复造轮子的老话,但是在使用框架的同时一定要学习人家的思想与实现方式,免得发生没了框架就不会写代码的境地。Gin的github地址:https://github.com/gin-gonic/gin中文文档地址:https://gin-gonic.com/zh-cn/docs/ 学习例子1 hello word1234567891011121314import ( "gopkg.in/gin-gonic/gin.v1" "net/http")func main(){ router := gin.Default() router.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello World") }) router.Run(":8000") ...
Go-web服务
发表于2019-08-11|Golang
文章首发于:clawhub.club 直接贴代码:注释已经写的很清楚了,如果感兴趣可以去github上看整个工程https://github.com/ClawHub/go-study 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768package httpimport ( "context" "fmt" "go-study/src/log" "net/http" "os" "os/signal" "syscall" "time")//测试func DemoHttp() { log.HttpLogger.Info("-------------http-------------") startW ...
Golang使用LMDB
发表于2019-08-11|Golang
文章首发于:clawhub.club lmdb的相关简介可以看我的其他博客,这里记录go简单使用lmdb。我使用了https://github.com/bmatsuo/lmdb-go这个开源工具。具体使用代码请参考我的githubhttps://github.com/ClawHub/go-study.git直接上代码: 结构体12345//lmdb客户端结构体 只创建一个lmdb环境,一个DB库type lmdbCliet struct { Env *lmdb.Env DBI lmdb.DBI} 获取lmdb客户端12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849/** * 获取lmdb客户端 *size: sets the size of the environment memory map. *path: Open an environment handle path *name: dbi name */func NewClie ...
Go-redis使用
发表于2019-08-11|Golang
文章首发于:clawhub.club 项目中用到了redis中间件,所以找了个go版的redis客户端,简单封装后使用。使用的go组件的github地址:https://github.com/go-redis/redis 简单使用 支持单机与集群 使用go.uber.org/zap日志组件 github.com/magiconair/properties 配置文件组件我把例子代码上传到了github:https://github.com/ClawHub/go-study.git redis_cmd.go123456789101112131415161718192021222324252627282930313233343536373839404142package redisimport ( "github.com/go-redis/redis" "time")//setfunc Set(key string, value interface{}, expiration time.Dura ...
go语言变量声明后的默认值
发表于2019-08-11|Golang
文章首发于:clawhub.club 在go语言中,任何类型在声明后没有赋值的情况下,都对应一个零值。 整形如int8、byte、int16、uint、uintprt等,默认值为0。浮点类型如float32、float64,默认值为0。布尔类型bool的默认值为false。复数类型如complex64、complex128,默认值为0+0i。字符串string的默认值为”“。错误类型error的默认值为nil。对于一些复合类型,如指针、切片、字典、通道、接口,默认值为nil。而数组的默认值要根据其数据类型来确定。例如:var a [4]int,其默认值为[0 0 0 0]。了解这些之后,在平时的代码编写中,就要注意对于没有赋值的变量进行操作时,一定要先对其值进行判断,以免出现错误。
Go-三个点可变参数
发表于2019-08-11|Golang
文章首发于:clawhub.club 三个点‘…’ 是go的一种语法糖,本质上是一个数组切片。 作用1、函数的不定参数用于函数有多个不定参数的情况,可以接受多个不确定数量的参数。 1func x(args ...int){} 2、将切片拆散slice可以被打散进行传递。 123//将切片m(含有3个int型元素)拆散成单个int型作为参数调用函数xm := make([]int, 3)x(m...) 项目中碰到的例子使用redis的发布订阅时,发现这边的不定参数用法,记录一下。 123456789// Subscribe subscribes the client to the specified channels.// Channels can be omitted to create empty subscription.func (c *ClusterClient) Subscribe(channels ...string) *PubSub { pubsub := c.pubSub() if len(channels) > 0 &# ...
Go-syscall.Rlimit
发表于2019-08-11|Golang
文章首发于:clawhub.club GO项目中遇到了限制系统资源的功能。 123456789101112131415161718192021222324252627//init the system environmentfunc initSysEnv() { //描述资源软硬限制的结构体 var rLimit syscall.Rlimit //syscall.RLIMIT_NOFILE 一个进程能打开的最大文件数,内核默认是1024 err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit) if err != nil { fmt.Println("Error Getting Rlimit ", err) } fmt.Println(rLimit) // hard limit在资源中只是作为soft limit的上限 rLimit.Max = 999999 //soft limit,是指内核所能支持的资源上限 rLimit.Cur = 999999 err = s ...
Go读取properties配置文件
发表于2019-08-11|Golang
文章首发于:clawhub.club 使用java的spring的时候,配置文件用的最多的就是properties格式。最近用GO,尝试用一下前人写好的工具,学习。请配置好GO环境,我这使用的是govendor包管理工具。 magiconair/properties 114颗星具体详细介绍,请参考github。 安装1go get -u github.com/magiconair/properties 使用12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import ( "flag" "github.com/magiconair/properties")func main() { // init from a file p := properties.MustLoadFile("${HOME}/config.properties", properties ...
Go日志框架zap与lumberjack简单配置封装
发表于2019-08-11|Golang
文章首发于:clawhub.club 简介zapzap是uber开源的Go高性能日志库https://github.com/uber-go/zap lumberjackLumberjack用于将日志写入滚动文件。zap 不支持文件归档,如果要支持文件按大小或者时间归档,需要使用lumberjack,lumberjack也是zap官方推荐的。https://github.com/natefinch/lumberjack 简单使用工程结构 核心代码LogCore123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051/** * 获取日志 * filePath 日志文件路径 * level 日志级别 * maxSize 每个日志文件保存的最大尺寸 单位:M * maxBackups 日志文件最多保存多少个备份 * maxAge 文件最多保存多少天 * compress 是否压缩 * serviceName 服务名 */func NewLogger(fileP ...
bash govendor command not found
发表于2019-08-11|Golang
文章首发于:clawhub.club 在GOPATH中的项目下执行govendor init,报错:bash govendor command not found通过查找资料解决:https://stackoverflow.com/questions/42155805/govendor-doesnt-work-from-cmdfirst check that $GOPATH/bin is in your PATH
1…202122…39
avatar
ClawHub
ClawHub的技术分享,记录学习中的点点滴滴!
文章
383
标签
67
分类
46
Follow Me
公告
奋斗!
最新文章
以精准营销为例梳理短信业务
以精准营销为例梳理短信业务2023-10-16
小程序商品库存及限购优化改造
小程序商品库存及限购优化改造2023-10-16
从恶意刷单到小程序下单流程优化
从恶意刷单到小程序下单流程优化2023-10-16
从红包裂变活动了解活动业务
从红包裂变活动了解活动业务2023-09-27
从服务提醒单了解商机提醒业务
从服务提醒单了解商机提醒业务2023-09-23
标签
Golanghexo分布式微服务业务梳理小程序下单商机提醒活动短信nodeelectronvue测试PostmanJasper打印模板ExcelSQL微信ElasticSearchSQL优化福利资源问题与解决Excel上传OOMMap.computeIfAbsentAsyncTransmittableThreadLocalLists.partition随笔面试一键分发平台JavaJAVA基础java泛型arthasJAVA基础集合框架java并发容器源码分析
归档
  • 十月 20233
  • 九月 20233
  • 十二月 20223
  • 十一月 20223
  • 七月 20222
  • 六月 202210
  • 五月 202211
  • 四月 20222
©2019 - 2023 By ClawHub
好好学习 天天向上
搜索