mgo使用指南

mgo简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。 官方网站:http://labix.org/mgo。 golang.tc(golangtc.com)网站的数据存储就是是用的MongoDB+mgo。近一年使用下来表现良好。 API文档 下面是mgo、mgo/bson、mgo/txn的在线文档。 mgo GoDoc GoWalker mgo/bson GoDoc GoWalker mgo/txn GoDoc GoWal...阅读全文

2017-03-05 14:02:10 千山万水
阅读:3445 评论:3

Go-Redis

redis的client有好多好多,go语言的client在redis官方有两个推荐,radix和redigo。选择哪一个好呢?确实很纠结,后来掷硬币决定选择redigo了。 redis、go、redigo的安装就不需要提了,不能强行增加篇幅。 redigo使用起来很人性化,api设计的符合直觉,我对redis了解较少,使用过程中基本没有遇到障碍。 redigo的使用入门可以去查godoc:http://godoc.org/github.com/garyburd/redigo/redis 接下来...阅读全文

2016-05-12 18:59 simbadan
阅读:12263 评论:0

golang之旅--gopm

什么是gopm 在nodejs中我们有npm,可以通过npm来下载安装一些依赖包。在go中也开发了类似的东西,那就是gopm。这玩意儿是七牛开发的。在这里说下,七牛公司大部分程序都是用go语言编写的,所以开发出这么一个方便的东西肯定也是合情合理的。 gopm地址 git地址:https://github.com/gpmgo/gopm 官方地址:https://gopm.io/ gopm文档路径:https://github.com/gpmgo/docs/tree/master/zh-CN gop...阅读全文

2017-09-02 19:03:21 花_现
阅读:10455 评论:0

golang-redis

一.安装redis MAC 环境 1. 官网http://redis.io/ 下载最新的稳定版本,这里是4.0.2 2. sudo mv 到 /usr/local/ 3. sudo tar -zxf redis-4.0.2.tar 解压文件 4. 进入解压后的目录 cd redis-3.2.0 5. sudo make test 测试编译 6. sudo make install 二.启动redis 1. cd /usr/local/redis-4.0.2/src 2. sudo ./redis...阅读全文

2017-11-18 04:48 zhongxuan
阅读:1809 评论:0

Golang 变量内存模型

----------------- *Golang 变量在内存的形式* ----------------- int uint 在不同系统不同编译器有不同表现, *gc* 、 *gccgo* 的实现是在 64 位系统下,int uint 为 64 位,而 32 位系统为 32 位。 类似的,指针长度在 64 位系统为 8 字节,32 位系统为 4 字节。 数组、结构体中数据在内存中的紧密相连的。 ----- *字符串* ----- type stringStruct struct { s...阅读全文

2018-02-17 13:22:17 刘曦光
阅读:1377 评论:1

gf框架之grpool – 高性能的goroutine池

grpool Go语言中的goroutine虽然相对于系统线程来说比较轻量级,但是在高并发量下的goroutine频繁创建和销毁对于性能损耗以及GC来说压力也不小。充分将goroutine复用,减少goroutine的创建/销毁的性能损耗,这便是grpool对goroutine进行池化封装的目的。例如,针对于100W个执行任务,使用goroutine的话需要不停创建并销毁100W个goroutine,而使用grpool也许底层只需要几千个goroutine便能充分复用地执行完成所有任务。经测试,...阅读全文

阅读:2734 评论:0

Golang全面深入系列之 defer

前言 大家都知道go语言的defer功能很强大,对于资源管理非常方便,但是如果没用好,也会有陷阱哦。Go 语言中延迟函数 defer 充当着 try...catch 的重任,使用起来也非常简便,那么defer、return、返回值、panic 之间的执行顺序是怎么样的呢,下面我们就一点一点来揭开它的神秘面纱!话不多说了,来一起看看介绍吧。 Defer介绍 defer语句用于函数在返回之前执行函数调用。这个定义可能看起来很复杂,但通过一个例子很容易理解。 package main import (...阅读全文

阅读:1253 评论:1

golang slice 和 string 重用

相比于 c/c++,golang 的一个很大的改进就是引入了 gc 机制,不再需要用户自己管理内存,大大减少了程序由于内存泄露而引入的 bug,但是同时 gc 也带来了额外的性能开销,有时甚至会因为使用不当,导致 gc 成为性能瓶颈,所以 golang 程序设计的时候,应特别注意对象的重用,以减少 gc 的压力。而 slice 和 string 是 golang 的基本类型,了解这些基本类型的内部机制,有助于我们更好地重用这些对象 slice 和 string 内部结构 slice 和 stri...阅读全文

2018-03-17 17:34:37 hatlonely
阅读:2492 评论:0