代码拉取完成,页面将自动刷新
package main
import (
"flag"
"fmt"
"os"
"sync"
"time"
"github.com/fagongzi/goetty"
"github.com/fagongzi/goetty/protocol/redis"
)
var (
readTimeout = flag.Int("rt", 10, "The timeout for read in seconds")
connectTimeout = flag.Int("ct", 10, "The timeout for connect to server")
addr = flag.String("addr", "127.0.0.1:6379", "The target address.")
numKeys = 10000 //number of keys
)
func main() {
flag.Parse()
if err := fill(); err != nil {
fmt.Printf("%+v\n", err)
os.Exit(1)
}
}
func fill() (err error) {
conn := goetty.NewConnector(*addr,
goetty.WithClientConnectTimeout(time.Second*time.Duration(*connectTimeout)),
goetty.WithClientDecoder(redis.NewRedisReplyDecoder()),
goetty.WithClientEncoder(goetty.NewEmptyEncoder()))
if _, err = conn.Connect(); err != nil {
return
}
redis.InitRedisConn(conn)
complete := &sync.WaitGroup{}
complete.Add(2)
go func() {
for i := 0; i < numKeys; i++ {
args := []string{
fmt.Sprintf("book_%08d", i),
"price", fmt.Sprintf("%v", 0.3+float32(i)),
"count", fmt.Sprintf("%d", i),
//"title", fmt.Sprintf("Exploring AI, volume %d", i),
"author", "Mark Chen",
}
argInts := make([]interface{}, len(args))
for i, v := range args {
argInts[i] = v
}
if i%10000 == 0 {
fmt.Println(args)
}
if err = redis.WriteCommand(conn, "hmset", argInts...); err != nil {
return
}
if err = conn.Flush(); err != nil {
return
}
}
complete.Done()
}()
go func() {
var rsp interface{}
for i := 0; i < numKeys; i++ {
if rsp, err = conn.ReadTimeout(time.Second * time.Duration(*readTimeout)); err != nil {
return
}
if i%10000 == 0 {
fmt.Printf("response %+v\n", rsp)
}
}
complete.Done()
}()
complete.Wait()
fmt.Println("done")
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。