一 需求

对 hash 数据结构,要求 field-val 一个一个放入和读取。

二 代码
package main 
 
 
import ( 
   "fmt" 
   "github.com/garyburd/redigo/redis" // 引入redis包 
) 
 
 
func main() { 
   // 通过go 向redis 写入数据和读取数据 
   // 1 链接到 redis 
   conn, err := redis.Dial("tcp", "127.0.0.1:6379") 
   if err != nil { 
      fmt.Println("redis.Dial err=", err) 
      return 
   } 
   defer conn.Close() // 关闭 
 
 
   // 2 通过 go 向 redis 写入数据 
   _, err = conn.Do("HSet", "user01", "name", "john") 
   if err != nil { 
      fmt.Println("hset  err=", err) 
      return 
   } 
   _, err = conn.Do("HSet", "user01", "age", 18) 
   if err != nil { 
      fmt.Println("hset  err=", err) 
      return 
   } 
   // 3 通过 go 向 redis 读取数据 
   r1, err := redis.String(conn.Do("HGet", "user01", "name")) 
   if err != nil { 
      fmt.Println("hget  err=", err) 
      return 
   } 
   r2, err := redis.Int(conn.Do("HGet", "user01", "age")) 
   if err != nil { 
      fmt.Println("hget  err=", err) 
      return 
   } 
   fmt.Printf("操作ok r1=%v r2=%v \n", r1, r2) 
}
三 测试

操作ok r1=john r2=18

四 需求 

对 hash 数据结构,要求 field-val 是批量放入和读取。

五 代码
package main 
 
 
import ( 
   "fmt" 
   "github.com/garyburd/redigo/redis" // 引入redis包 
) 
 
 
func main() { 
   // 通过 go 向 redis 写入数据和读取数据 
   // 1 链接到 redis 
   conn, err := redis.Dial("tcp", "127.0.0.1:6379") 
   if err != nil { 
      fmt.Println("redis.Dial err=", err) 
      return 
   } 
   defer conn.Close() // 关闭 
   // 2 通过 go 向 redis 写入数据 
   _, err = conn.Do("HMSet", "user02", "name", "john", "age", 19) 
   if err != nil { 
      fmt.Println("HMSet  err=", err) 
      return 
   } 
   // 3 通过 go 向 redis 读取数据 
   r, err := redis.Strings(conn.Do("HMGet", "user02", "name", "age")) 
   if err != nil { 
      fmt.Println("hget  err=", err) 
      return 
   } 
   for i, v := range r { 
      fmt.Printf("r[%d]=%s\n", i, v) 
   } 
}
六 测试

r[0]=john

r[1]=19