redigo库来实现redis的操作:https://github.com/gomodule/redigo
Redis常用操作
示例代码:
package main import ( "github.com/gomodule/redigo/redis" "fmt" "time" ) func initRedis() (dial redis.Conn, err error) { dial, err = redis.Dial("tcp", "172.16.65.183:30001") if err != nil { panic(err) } return dial, nil } func testSetGet(dial redis.Conn) { // 设置一个Key和value dial.Do("set", "abc", "this is a test") // 设置过期时间 dial.Do("expire", "abc", 2) // 读取指定key的value reply, err := dial.Do("get", "abc") str, err := redis.String(reply, err) if err != nil { panic(err) } fmt.Println(str) } func testHSetGet(dial redis.Conn) { key := "abc" value := "this is a book test" // 设置一个hash表来存储 reply, err := dial.Do("hset", "books", key, value) if err != nil { panic(err) } fmt.Println(reply) reply2, err := dial.Do("hget", "books", key) str, err := redis.String(reply2, err) if err != nil { panic(err) } fmt.Println(str) } func testMSetGet(dial redis.Conn) { key := "abc" value := "this is a test book" key2 := "golang" value2 := "this is a golang book" // 一次设置多个key dial.Do("mset", "books", key, value, key2, value2) str, err := redis.Strings(dial.Do("mget", "books",key, key2)) if err != nil { panic(err) } fmt.Println(str) } func main() { dial, _ := initRedis() testSetGet(dial) testHSetGet(dial) testMSetGet(dial) time.Sleep(4 * time.Second) reply, err := dial.Do("get", "abc") str, err := redis.String(reply, err) if err != nil { panic(err) } fmt.Println("get abc", str) defer dial.Close() }