连接redis:

package main

import (
   "fmt"

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

func main() {
   c, err := redis.Dial("tcp", "localhost:6379")
   if err != nil {
      fmt.Println("conn redis failed,", err)
      return
   }

   defer c.Close()
}

设置过期时间:

package main

import (
   "fmt"

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

func main() {
   c, err := redis.Dial("tcp", "localhost:6379")
   if err != nil {
      fmt.Println("conn redis failed,", err)
      return
   }

   defer c.Close()
   _, err = c.Do("expire", "abc", 10)
   if err != nil {
      fmt.Println(err)
      return
   }
}

hset:

package main

import (
   "fmt"

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

func main() {
   c, err := redis.Dial("tcp", "localhost:6379")
   if err != nil {
      fmt.Println("conn redis failed,", err)
      return
   }

   defer c.Close()
   _, err = c.Do("HSet", "books", "abc", 100)
   if err != nil {
      fmt.Println(err)
      return
   }

   r, err := redis.Int(c.Do("HGet", "books", "abc"))
   if err != nil {
      fmt.Println("get abc failed,", err)
      return
   }

   fmt.Println(r)
}

list:

package main

import (
   "fmt"

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

func main() {
   c, err := redis.Dial("tcp", "localhost:6379")
   if err != nil {
      fmt.Println("conn redis failed,", err)
      return
   }

   defer c.Close()
   _, err = c.Do("lpush", "book_list", "abc", "ceg", 300)
   if err != nil {
      fmt.Println(err)
      return
   }

   r, err := redis.String(c.Do("lpop", "book_list"))
   if err != nil {
      fmt.Println("get abc failed,", err)
      return
   }

   fmt.Println(r)
}

set:

package main

import (
   "fmt"

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

func main() {
   var p *int
   var a int
   p = &a
   *p = 0

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

   defer c.Close()
   _, err = c.Do("Set", "abc", 100)
   if err != nil {
      fmt.Println(err)
      return
   }

   r, err := redis.Int(c.Do("Get", "abc"))
   if err != nil {
      fmt.Println("get abc failed,", err)
      return
   }

   fmt.Println(r)
}

batch set:

package main

import (
   "fmt"

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

func main() {
   c, err := redis.Dial("tcp", "localhost:6379")
   if err != nil {
      fmt.Println("conn redis failed,", err)
      return
   }

   defer c.Close()
   _, err = c.Do("MSet", "abc", 100, "efg", 300)
   if err != nil {
      fmt.Println(err)
      return
   }

   r, err := redis.Ints(c.Do("MGet", "abc", "efg"))
   if err != nil {
      fmt.Println("get abc failed,", err)
      return
   }

   for _, v := range r {
      fmt.Println(v)
   }
}

连接池:

package main

import (
   "fmt"

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

var pool *redis.Pool

func init() {
   pool = &redis.Pool{
      MaxIdle:     16,
      MaxActive:   0,
      IdleTimeout: 300,
      Dial: func() (redis.Conn, error) {
         return redis.Dial("tcp", "localhost:6379")
      },
   }
}

func main() {

   c := pool.Get()
   defer c.Close()

   _, err := c.Do("Set", "abc", 100)
   if err != nil {
      fmt.Println(err)
      return
   }

   r, err := redis.Int(c.Do("Get", "abc"))
   if err != nil {
      fmt.Println("get abc failed,", err)
      return
   }

   fmt.Println(r)
   pool.Close()
}