登录
首页 >  Golang >  Go问答

存redis数据库问题!

来源:SegmentFault

时间:2023-01-08 12:29:28 221浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《存redis数据库问题!》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

//用户的消息存储
func (this *UserDao) SaveContent(id int, content string) (err error) {
    // 先从UserDao 的连接池中取出一根连接
    conn := this.Pool.Get()
    defer conn.Close()
    nowTime := time.Now()
    noTime := nowTime.Format("2006-01-02 15:04:05")

    //定义map存储内容和时间
    saveContent := make(map[string]string)
    saveContent[noTime] = content

    data, err := json.Marshal(saveContent)
    if err != nil {
        fmt.Println("json.Marshal(saveContent) err=", err)
    }
    //入库
    _, err = conn.Do("HSet", "usersContent", id, string(data))
    if err != nil {
        fmt.Println("HSet err =", err)
    }
    return
}

* * *

本段代码,我定义了一个map,想把当前时间作为键,把用户的消息内容为值存入redis,结果如下:

image.png

,但是用户下一次发消息的时候,会覆盖上一条数据,每个用户就只有一条数据。请问该咋改勒!谢谢啦### 问题描述

正确答案

可以使用list结构, sortedset也可以(具体看需求)

// _, err = conn.Do("LPUSH", "usersContent:{id}", string(data))
_, err = conn.Do("RPUSH", "usersContent:{id}", string(data))

以上就是《存redis数据库问题!》的详细内容,更多关于golang的资料请关注golang学习网公众号!

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