前言:导入开源库

go语言操作Redis详细步骤_github

 操作字符串

package main

import (
"fmt"

"github.com/garyburd/redigo/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
}

//4、关闭redis连接
defer conn.Close()

//2、通过go 向redis写入数据 string [key-val]
_, err = conn.Do("Set", "name", "tom哈哈")
if err != nil {
fmt.Println("redis.Dial err=", err)
return
}

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

fmt.Println("操作ok", r)
}

操作hash
  • 一个一个操作
package main

import (
"fmt"

"github.com/garyburd/redigo/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
}

//4、关闭redis连接
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读取数据
//因为返回 r 是 interface{}
//因为 name 对应的值是string,因此我们需要转换
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", r1, r2)
}

  • 同时操作多个
package main

import (
"fmt"

"github.com/garyburd/redigo/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
}

//4、关闭redis连接
defer conn.Close()

//2、通过go 向redis写入数据
_, err = conn.Do("HMSet", "user01", "name", "john", "age", 18)
if err != nil {
fmt.Println("HSet err=", err)
return
}

//3、通过go 向redis读取数据
//因为返回 r 是 interface{}
//因为 name 对应的值是string,因此我们需要转换
r1, err := redis.Strings(conn.Do("HMGet", "user01", "name", "age"))
if err != nil {
fmt.Println("HGet err=", err)
return
}

fmt.Printf("操作ok r1=%v", r1)
}