原创 go random string

利用random給數據主鍵生成唯一ID // 生成: 時間戳 + 設置前綴 + 隨即字符串 const alphanum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmno

原创 java 四種線程池

Java通過Executors提供四種線程池,各有用處,下面是列子: package executor; import java.util.concurrent.ExecutorService; import java.util

原创 go json

go裏的encoding/json 包專門處理json import ( "encoding/json" "fmt" "os" ) type Response1 struct { Page

原创 用Redis實現分佈式鎖 與 實現任務隊列

 這一次總結和分享用Redis實現分佈式鎖 與 實現任務隊列 這兩大強大的功能。先扯點個人觀點,之前我看了一篇博文說博客園的文章大部分都是分享代碼,博文裏強調說分享思路比分享代碼更重要(貌似大概是這個意思,若有誤請諒解),但我覺得

原创 go time

import ( "fmt" "time" ) func main() { p := fmt.Println // 2015-11-30 19:18:48.264366857 +0800 CST

原创 go 工廠

直接上代碼 import ( "errors" "fmt" "strings" ) type Servers []Server type Server struct { Name string

原创 Golang開發環境搭建-Vim篇

雖說sublimetext3+gosublime+gocode是目前較爲 流行的Golang開發環境組合,但作爲一名VIMer,沒有一套得心應手的Vim for Golang dev心裏總是過不去的。Golang雖然年輕,但即便是

原创 go regexp正則

regexp包是go中內置的專門處理正則的包 package main import "bytes" import "fmt" import "regexp" func main() { // 正則,返回true 或者 f

原创 go string_formatting

字符串格式化輸出 package main import "fmt" import "os" type point struct { x, y int } func main() { // 創建一個point

原创 go channel 通信通道

go中最重要的一種通信通道就是channel 1.給一個 nil channel 發送數據,造成永遠阻塞 2.從一個 nil channel 接收數據,造成永遠阻塞 3.給一個已經關閉的 channel 發送數

原创 go collection-func

集合的操作: import ( "fmt" "strings" ) // 返回數組下標,找不到返回-1 func Index(vs []string, t string) int { for i, v :

原创 go test單元測試

之前看了go官方的github上關於golang的單元測試,現在總結一下關鍵的地方。 單個測試 文件名必須是_test.go結尾的,這樣在執行go test的時候纔會執行到相應的代碼 你必須import testing這個包 所

原创 Redis常用命令

Redis常用命令集 1)連接操作命令 quit:關閉連接(connection) auth:簡單密碼認證 help cmd: 查看cmd幫助,例如:help quit 2)持久化 save:將數據同步保存到磁盤 bg

原创 go select 和 switch

select和switch語法都能相近,但是有重要不同的一點,switch可以做表達式的比較判斷,而select只能是io操作的判斷。相同點:都能用return跳出來。 // switch i := 1 switch{ c

原创 go panic

import ( "fmt" "os" ) func main() { fmt.Println("Start Main func()") panic("a problem") _, e