Redis 管道(pipeline)运用

本文探讨了Redis管道(pipeline)在处理大量操作时提升效率的应用。通过实测,展示了管道在数据库操作中的显著性能提升。
摘要由CSDN通过智能技术生成

Redis在进行大批量操作时,为了提高运行效率,往往会采用pipe,今天实测对比了一下管道的运行效率,还是挺惊人的.

package main

import (
	"flag"
	"fmt"
	"github.com/go-redis/redis/v8"
	"context"
	"time"
)

func main() {

	var pipucot int = 1
	flag.IntVar(&pipucot, "pc", 1000, "pip批量处理个数")
	flag.Parse()

	rdb := redis.NewClient(&redis.Options{
		Addr:"192.168.1.101:6379",
	})

	ctx := context.Background()

	pip := rdb.Pipeline()

	t := time.Now()
	cmdcot := 100000

	for k:=1;k<cmdcot;k++{

		key:= fmt.Sprint("keypip%d", k)
		err := pip.Set(ctx, key, k, 0).Err()
		if err != nil {
			panic(err)
		}
		if k%pipucot==0{
			pip.Exec(ctx)
		}
	}
	println("pip use time:", time.Since(t).Milliseconds())

	t1 := time.Now()
	for k:=1;k<cmdcot;k++{

		key:= fmt.Sprint("key%d", k)
		err := rdb.Set(ctx, key, k, 0).Err()

		if err != nil {
			panic(err)
		}
	}
	println("no pip use time:", time.Since(t1).Milliseconds())
}

运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值