【笔记】Go语言通过redis提供的包操作Redis

前言

Go语言通过github.com/redis/go-redis/v9包操作Redis学习笔记

下载依赖

1
go get github.com/redis/go-redis/v9

获取Redis连接

1
2
3
4
5
6
var ctx context.Context = context.Background()
var rdb *redis.Client = redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
Password: "",
DB: 0,
})

字符串

新增或修改

不指定过期时间

1
err := rdb.Set(ctx, "key", "value", 0).Err()

指定过期时间

1
err := rdb.Set(ctx, "key", "value", time.Now()).Err()

删除

1
err := rdb.Del(ctx, "key").Err()

查询

1
res, err := rdb.Get(ctx, "key").Result()

判断是否存在

1
2
3
4
5
6
7
8
9
if _, err := rdb.Get("ctx", "key").Result(); err != nil {
if err == redis.Nil {
// 不存在
} else {
// 报错
}
} else {
// 存在
}

数组

向数组末尾追加元素

  • 如果数组不存在则会自动创建数组
1
err := rdb.RPush(ctx, "key", "value").Err()

删除数组

1
err := rdb.Del(ctx, "key").Err()

查询数组长度

1
res, err := rdb.LLen(ctx, "key").Result()

查询指定索引的数据

  • 查询索引在区间[0,1]的数据
1
res, err := rdb.LRange(ctx, "key", 0, 1).Result()

查询全部数据

1
2
length, err := rdb.LLen(ctx, "key").Result()
res, err := rdb.LRange(ctx, "key", 0, length-1).Result()

完成

参考文献

后浪云