func TestScan(t *testing.T) { cfg := config.NewConfigDefault() cfg.DataDir = "/tmp/test_scan" cfg.Addr = "127.0.0.1:11185" os.RemoveAll(cfg.DataDir) s, err := NewApp(cfg) if err != nil { t.Fatal(err) } go s.Run() defer s.Close() c := goredis.NewClient(cfg.Addr, "") c.SetMaxIdleConns(1) defer c.Close() testKVScan(t, c) testHashKeyScan(t, c) testListKeyScan(t, c) testZSetKeyScan(t, c) testSetKeyScan(t, c) }
func (app *App) getMigrateClient(addr string) *goredis.Client { app.migrateM.Lock() mc, ok := app.migrateClients[addr] if !ok { mc = goredis.NewClient(addr, "") app.migrateClients[addr] = mc } app.migrateM.Unlock() return mc }
func main() { flag.Parse() line = liner.NewLiner() defer line.Close() line.SetCtrlCAborts(true) setCompletionHandler() loadHisotry() defer saveHisotry() var addr string if len(*socket) > 0 { addr = *socket } else { addr = fmt.Sprintf("%s:%d", *ip, *port) } c := goredis.NewClient(addr, "") c.SetMaxIdleConns(1) sendSelect(c, *dbn) reg, _ := regexp.Compile(`'.*?'|".*?"|\S+`) prompt := "" for { if *dbn > 0 && *dbn < 16 { prompt = fmt.Sprintf("%s[%d]> ", addr, *dbn) } else { prompt = fmt.Sprintf("%s> ", addr) } cmd, err := line.Prompt(prompt) if err != nil { fmt.Printf("%s\n", err.Error()) return } cmds := reg.FindAllString(cmd, -1) if len(cmds) == 0 { continue } else { line.AppendHistory(cmd) args := make([]interface{}, len(cmds[1:])) for i := range args { args[i] = strings.Trim(string(cmds[1+i]), "\"'") } cmd := strings.ToLower(cmds[0]) if cmd == "help" || cmd == "?" { printHelp(cmds) } else { r, err := c.Do(cmds[0], args...) if err == nil && strings.ToLower(cmds[0]) == "select" { *dbn, _ = strconv.Atoi(cmds[1]) } if err != nil { fmt.Printf("%s", err.Error()) } else { if cmd == "info" { printInfo(r.([]byte)) } else { printReply(0, r) } } fmt.Printf("\n") } } } }
func newTestLedisClient() { testLedisClient = goredis.NewClient("127.0.0.1:16380", "") testLedisClient.SetMaxIdleConns(4) }
func newTestLedisClientAuth() { testLedisClientAuth = goredis.NewClient("127.0.0.1:20000", "") testLedisClientAuth.SetMaxIdleConns(4) }
func main() { runtime.GOMAXPROCS(runtime.NumCPU()) flag.Parse() if *number <= 0 { panic("invalid number") return } if *clients <= 0 || *number < *clients { panic("invalid client number") return } loop = *number / *clients addr := fmt.Sprintf("%s:%d", *ip, *port) client = goredis.NewClient(addr, "") client.SetReadBufferSize(10240) client.SetWriteBufferSize(10240) client.SetMaxIdleConns(16) for i := 0; i < *clients; i++ { c, _ := client.Get() c.Close() } if *round <= 0 { *round = 1 } ts := strings.Split(*tests, ",") for i := 0; i < *round; i++ { for _, s := range ts { switch strings.ToLower(s) { case "set": benchSet() case "get": benchGet() case "randget": benchRandGet() case "del": benchDel() case "lpush": benchPushList() case "lrange": benchRangeList10() benchRangeList50() benchRangeList100() case "lpop": benchPopList() case "hset": benchHset() case "hget": benchHGet() benchHRandGet() case "hdel": benchHDel() case "zadd": benchZAdd() case "zincr": benchZIncr() case "zrange": benchZRangeByRank() benchZRangeByScore() case "zrevrange": //rev is too slow in leveldb, rocksdb or other //maybe disable for huge data benchmark benchZRevRangeByRank() benchZRevRangeByScore() case "zdel": benchZDel() } } println("") } }