登录
首页 >  Golang >  Go问答

go redis HMSet 失败

来源:stackoverflow

时间:2024-04-15 10:00:19 156浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《go redis HMSet 失败》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

当我在 go 中使用 redis hmset 时,出现以下问题,为什么? err “hset”命令的参数数量错误 导致值没有存储在 redis 中? 我指的是redis书,为什么这是一个问题?

func (r *ArticleRepo) PostArticle(user, title, link string) string {
    articleId := strconv.Itoa(int(r.Conn.Incr("article:").Val()))

    voted := "voted:" + articleId
    r.Conn.SAdd(voted, user)
    r.Conn.Expire(voted, common.OneWeekInSeconds*time.Second)

    now := time.Now().Unix()
    article := "article:" + articleId
    _, err := r.Conn.HMSet(article, map[string]interface{}{
        "title":  title,
        "link":   link,
        "poster": user,
        "time":   now,
        "votes":  1,
    }).Result()
    if err != nil {
        fmt.Println(err)
    }

    r.Conn.ZAdd("score:", &redis.Z{Score: float64(now + common.VoteScore), Member: article})
    r.Conn.ZAdd("time:", &redis.Z{Score: float64(now), Member: article})
    return articleId
}

正确答案


您可以在 go 中使用 hset 代替 hmset ,如下所示:

_, err := r.Conn.Do("hset", article, map[string]interface{}{
    "title":  title,
    "link":   link,
    "poster": user,
    "time":   now,
    "votes":  1,
}).Result()

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《go redis HMSet 失败》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>