redis管道可以用来一次性执行多个命令, 可以节省网络带宽,同时对于应用的性能也有一定的提升
pipline 管道
redigo支持管道: 使用Send, Flush and Receive 三个函数
Send(commandName string, args ...interface{}) error
Flush() error
Receive() (reply interface{}, err error)
send将命令发送到缓冲区中
flush刷新缓冲区,将命令发送到redis服务器
receive负责处理接收到的消息内容, 注意:receive一次只从结果中拿出一个send的命令进行处理
例如
c.Send("SET", "foo", "bar")
c.Send("GET", "foo")
c.Flush()
c.Receive() // reply from SET
v, err = c.Receive() // reply from GET
示例:
package main
import (
"fmt"
"github.com/gomodule/redigo/redis"
"log"
)
func echoReceive(res interface{}, err error){
if err != nil{
fmt.Println(err)
}else {
if res != nil{
fmt.Printf("--------- ")