GoLand中调用
package main
import (
"context"
"fmt"
"github.com/go-redis/redis/v8"
)
var ctx = context.Background()
func main() {
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
panic(err)
}
val, err := rdb.Get(ctx, "key").Result()
if err != nil {
panic(err)
}
fmt.Println("key", val)
if err != nil {
fmt.Println(err)
return
}
}
基础语法
(1)String
// 设置键为"key"的值为"value"
err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
fmt.Println(err)
return
}
// 获取键为"key"的值
val, err := rdb.Get(ctx, "key").Result()
if err != nil {
fmt.Println(err)
return
}
fmt.Println("key", val)
if err != nil {
fmt.Println(err)
return
}
// 获取未设置的键的值
val2, err := rdb.Get(ctx, "key2").Result()
if err == redis.Nil {
fmt.Println("key2 does not exist")
} else if err != nil {
fmt.Println(err)
return
} else {
fmt.Println("key2", val2)
}
(2)Hash
// 设置dirty_data的字段
rdb.HSet(ctx, "dirty_data", "created_at", time.Now().Format("2006-01-02 15:01:05"))
rdb.HSet(ctx, "dirty_data", "value", "01010")
val, err := rdb.HGetAll(ctx, "dirty_data").Result()
if err != nil {
fmt.Println(err)
return
}
fmt.Println("dirty_data:\n", val)
(3)List
// 在列表的尾部插入值
rdb.RPush(ctx, "dataList", 1, 3, 5, 3)
// 获取列表长度
len, err := rdb.LLen(ctx, "dataList").Result()
if err != nil {
fmt.Println(err)
return
}
val, err := rdb.LRange(ctx, "dataList", 0, len).Result()
if err != nil {
fmt.Println(err)
return
}
fmt.Println("dataList:\n", val)