HMSET

作者: NotFoundW | 来源:发表于2020-04-15 16:28 被阅读0次

HMSET

  1. 使用结构体,为hash表添加字段。并利用结构体,将hash表的字段的值取出并赋值到结构体
  2. 使用普通命令,为hash表添加字段。取出字段的值后,以List的形式展示

Command

$ redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> hmset snake name kobe number 24 team lakers
OK
127.0.0.1:6379> hgetall snake
1) "name"
2) "kobe"
3) "number"
4) "24"
5) "team"
6) "lakers"

Code

func Hmset(c redis.Conn) {
    // Use struct as args to set fields and values of hash table. And once get values of fields, overwrite to another struct.
    type foxStruct struct {
        Name   string `redis:"name"`
        Number int    `redis:"number"`
        Team   string `redis:"team"`
    }

    snake := foxStruct{
        Name:   "kobe",
        Number: 0,
        Team:   "lakers",
    }

    defer c.Do("DEL", "snake")
    if _, err := c.Do("HMSET", redis.Args{}.Add("snake").AddFlat(&snake)...); err != nil {
        colorlog.Error(err.Error())
        return
    }
    v1, err := redis.Values(c.Do("HGETALL", "snake"))
    if err != nil {
        fmt.Println(err)
        return
    }
    var sameSnake foxStruct
    if err = redis.ScanStruct(v1, &sameSnake); err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println("sameSnake.Name:", sameSnake.Name)
    fmt.Println("sameSnake.Number:", sameSnake.Number)
    fmt.Println("sameSnake.Team:", sameSnake.Team)

    // Use normal command to set fields and values of hash table. And get the values as list.
    defer c.Do("DEL", "player")
    if _, err := c.Do("HMSET", "player", "name", "allen", "number", 3, "team", "76ers"); err != nil {
        colorlog.Error(err.Error())
        return
    }
    fieldsAndValues, err := redis.Strings(c.Do("HGETALL", "player"))
    if err != nil {
        colorlog.Error(err.Error())
        return
    }
    for i, v := range fieldsAndValues {
        if i%2 == 0 {
            fmt.Println("field", i/2, "is:", v)
        } else {
            fmt.Println("value of field", (i-1)/2, "is:", v)
        }
    }
}

Output

$ go run main.go
sameSnake.Name: kobe
sameSnake.Number: 0
sameSnake.Team: lakers
field 0 is: name
value of field 0 is: allen
field 1 is: number
value of field 1 is: 3
field 2 is: team
value of field 2 is: 76ers

相关文章

  • HMSET

    HMSET 使用结构体,为hash表添加字段。并利用结构体,将hash表的字段的值取出并赋值到结构体 使用普通命令...

  • 初识redis 命令

    Hashes HMSET key field value [field value ...]设置多个hash 字段...

  • Redis hash表

    hash表 练习命令使用,具体如下: hset hmset hgetall hkeys hvals hget hm...

  • redis 第八讲 Hash

    key-value 模式不变,但 value 是一个键值对 hset / hget hmset / hmget /...

  • 剖析Redis协议

    我们都知道调用Redis的命令是这样的:set username afei,hmset Person:1 user...

  • redis 07 五大数据类型-hash

    hash还是key value模式,但是该value又是一堆key value hset/hget/hmset/h...

  • redis的hash类型的常用命令

    1:hset key field value 把key中的field域值设置成value 2:hmset key ...

  • Redis实战笔记-文章投票系统

    发布文章incr articleId 获取新的递增的文章id,hmset article:id 将文章详情设置到...

  • Redis核心数据结构 - hash

    常用操作 HSET key field value    // 存储一个哈希表key的键值HMSET key f...

  • hash类型批量操作

    HMSET 语法 同时将多个 field-value (字段-值)对设置到哈希表 key 中。此命令会覆盖哈希表中...

网友评论

      本文标题:HMSET

      本文链接:https://www.haomeiwen.com/subject/jdocvhtx.html