redis作为提升web服务端数据交互能力的重要利器,其本身也有开销,为了让redis变得更快,有必要对和redis交互的地方进行性能优化。
今天说一下golang中比较著名的一个redis库—-redigo。它的conn.Do()、Send()、Flush()、Receive()的合理使用是很有必要的。
先上一个我本地测试的例子:
func main(){
_=InitRedis(10,"127.0.0.1","6379","requirepass",false) //初始化redis,这里就不细写了
GetRedisKey()
GetRedisKey2()
}
func GetRedisKey() {
now:=time.Now()
conn := redisPool.Get()
defer conn.Close()
for i:=0;i<1000;i++{ //做1000次get
key := "1125"+"test"+strconv.Itoa(i)
//_, err := conn.Do("set", key,"testValue") 这个是之前set
_, err := redis.String(conn.Do("get", key)) //执行get,并获取结果
if err!=nil {
fmt.Println(err)
}
//fmt.Println(result)
}
finish1:=time.Since(now) //计时
fmt.Println(finish1)
}
func GetRedisKey2() {
now:=time.Now()
conn := redisPool.Get()
defer conn.Close()
var count int
for i:=0;i<1000;i++{ //做1000次get
key := "1125"+"test2_"+strconv.Itoa(i)
//err := conn.Send("set", key,"testValue")之前