Go语言操作redis非常简单,下面演示一个简单的string类型的操作

package main

import (
	"fmt"
	"github.com/garyburd/redigo/redis"
)

func main() {

	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil {
		fmt.Println("redis.Dial err=", err)
		return
	}

	defer conn.Close()

	// 通过go 向redis写入数据 string [key-val]
	_, err = conn.Do("Set", "Name", "tomjerry猫猫")
	if err != nil {
		fmt.Println("set err=", err)
		return
	}

	// 通过go 向redis读取数据 string [key-val]
	r, err := redis.String(conn.Do("Get", "Name"))
	if err != nil {
		fmt.Println("set err=", err)
		return
	}
	fmt.Println("操作ok ", r)

}

连接池的概念

 

 

 

Go 语言创建连接池

package main

import (
	"fmt"

	"github.com/garyburd/redigo/redis"
)

// 定义一个全局的pool
var pool *redis.Pool

func init() {

	pool = &redis.Pool{
		MaxIdle:     8,   // 最大空闲链接数
		MaxActive:   0,   // 表示和数据库的最大链接数, 0表示无限制
		IdleTimeout: 100, // 最大空闲时间
		Dial: func() (redis.Conn, error) {
			return redis.Dial("tcp", "localhost:6379")
		},
	}
}

func main() {
	conn := pool.Get()
	defer conn.Close()

	_, err := conn.Do("Set", "name", "汤姆猫~")
	if err != nil {
		fmt.Println("conn.Do err=", err)
		return
	}

	r, err := redis.String(conn.Do("Get", "name"))
	if err != nil {
		fmt.Println("conn.Do err=", err)
		return
	}

	fmt.Println("r=", r)

}

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐