redis性能调优一则

本文探讨了如何通过优化Golang中redigo库的使用来提升Redis性能。通过分析conn.Do()、Send()、Flush()、Receive()的使用,作者展示了在循环中使用Send()和批量Flush()能显著提高查询速度,减少了网络传输次数,利用Redis的pipelining特性实现了性能提升。
摘要由CSDN通过智能技术生成

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")之前
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值