Hashes
Redis hashes是一种记录类型,结构为字段值对的集合。
你可以使用 hashes 来
我感觉Hash有点类似于map[string]interface{}
hash可以存储这种类似的json
1
2
3
4
| {
"name":"dinglz",
"age":18
}
|
简单的来说,一个hash类型的值,存储的是key-value的结构
HSET
设置一个字段的值,用法是HSET hash名 字段名 字段值
比如要存储一个人的信息,存储他的姓名和年龄,我们就可以
1
2
| HSET person name dinglz
HSET person age 18
|
go-redis example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| package main
import (
"context"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
client := redis.NewClient(&redis.Options{})
client.HSet(ctx, "person", "name", "dinglz")
client.HSet(ctx, "person", "age", 18)
}
|
HGET
获取某个字段的值,用法是HGET hash名 字段名
redis-cli
go-redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| package main
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
client := redis.NewClient(&redis.Options{})
res, e := client.HGet(ctx, "person", "name").Result()
if e != nil {
panic(e)
}
fmt.Println(res)
}
|
HINCRBY
与INCRBY
类似,让hash的某个字段增加一个数值,用法是HINCRBY hash名 字段名 增加的数值
比如要模拟一个人长大了一岁
redis-cli
go-redis
1
2
3
4
5
6
7
8
9
10
11
12
13
| package main
import (
"context"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
client := redis.NewClient(&redis.Options{})
client.HIncrBy(ctx, "person", "age", 1)
}
|
HEXISTS
判断hash中是否存在某个字段,用法是HEXISTS hash名 字段名
redis-cli
go-redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| package main
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
client := redis.NewClient(&redis.Options{})
res, e := client.HExists(ctx, "person", "name").Result()
if e != nil {
panic(e)
}
fmt.Println(res)
}
|
HKEYS
可以获取hash中的所有字段,用法是HKEYS hash名
redis-cli
go-redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| package main
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
client := redis.NewClient(&redis.Options{})
res, e := client.HKeys(ctx, "person").Result()
if e != nil {
panic(e)
}
for _, i := range res {
fmt.Println(i)
}
}
|
回顾
HASHES就是一个高性能,可持久化的map,今天聊到了这些命令:
HSET && HGET
HINCRBY
HEXISTS
HKEYS
更多Hash相关的命令