学习-1

作者: NotFoundW | 来源:发表于2020-04-07 14:29 被阅读0次

日志包使用

"github.com/yezihack/colorlog"

操作redis使用redigo包

"github.com/garyburd/redigo/redis"

在main函数中连接数据库,再调用其他函数,其他函数里实现学习的内容。

func main() {
    c, err := redis.Dial("tcp", "127.0.0.1:6379")
    if err != nil {
        fmt.Println("Connect to redis error", err)
        return
    }
    defer c.Close()
    SingleKey(c)
    SingleExpireKey(c)
    SingleKeyExist(c)
    SingleKeyDelete(c)
    SinglePersistKey(c)
}

接下来其他函数里学习一些对单个Key的操作。


给单个key赋值,然后获取值。

Code

func SingleKey(c redis.Conn) {
    colorlog.Info("Func OneKey...")
    _, err := c.Do("SET", "FoxKey", "Fox")
    if err != nil {
        colorlog.Error("redis set failed: " + err.Error())
        return
    }

    valueOfFoxKey, err := redis.String(c.Do("GET", "FoxKey"))
    if err != nil {
        colorlog.Error("redis get failed: " + err.Error())
    } else {
        fmt.Printf("Get FoxKey: %v \n", valueOfFoxKey)
    }
}

Output

1.png

给单个key设置过期时间并赋值,然后获取值。

Code

func SingleExpireKey(c redis.Conn) {
    colorlog.Info("Func SingleExpireKey...")
    _, err := c.Do("SET", "FoxExpireKey", "Fox", "EX", "2")
    if err != nil {
        colorlog.Error("redis set failed: " + err.Error())
        return
    }

    valueOfFoxExpireKey, err := redis.String(c.Do("GET", "FoxExpireKey"))
    if err != nil {
        colorlog.Error("redis get failed: " + err.Error())
    } else {
        fmt.Printf("Get Value of Fox Expire Key: %v \n", valueOfFoxExpireKey)
    }

    colorlog.Debug("Waiting for the key expired")
    time.Sleep(3 * time.Second)

    valueOfFoxExpireKey, err = redis.String(c.Do("GET", "FoxExpireKey"))
    if err != nil {
        colorlog.Error("redis get failed: " + err.Error())
    } else {
        fmt.Printf("Get Value of Fox Expire Key %v \n", valueOfFoxExpireKey)
    }
}

Output

2.png

判断单个key是否存在

Code

func SingleKeyExist(c redis.Conn) {
    colorlog.Info("Func SingleKeyExist...")
    _, err := c.Do("SET", "KobeKey", "Kobe")
    if err != nil {
        colorlog.Error("redis set failed: " + err.Error())
        return
    }
    isExist, _ := c.Do("EXISTS", "KobeKey")
    if isExist == int64(1) {
        fmt.Println("The KobeKey exists")
    } else {
        fmt.Println("The KobeKey doesn't exist")
    }
    isExist, _ = c.Do("EXISTS", "FakeKey")
    if isExist == int64(1) {
        fmt.Println("The FakeKey exists")
    } else {
        fmt.Println("The FakeKey doesn't exist")
    }
}

Output

3.png

删除单个key

Code

func SingleKeyDelete(c redis.Conn) {
    colorlog.Info("Func SingleKeyDelete...")
    _, err := c.Do("SET", "AllenKey", "Allen")
    if err != nil {
        colorlog.Error("redis set failed: " + err.Error())
        return
    }
    del, err := c.Do("DEL", "AllenKey")
    if err != nil {
        colorlog.Error(err.Error())
    } else {
        if del == int64(1) {
            fmt.Println("Allen key deleted successfully")
        } else {
            fmt.Println("Allen key deleted failed, key may doesn't exist")
        }
    }

    del, err = c.Do("DEL", "TracyKey")
    if err != nil {
        colorlog.Error(err.Error())
    } else {
        if del == int64(1) {
            fmt.Println("Tracy key deleted successfully")
        } else {
            fmt.Println("Tracy key deleted failed, key may doesn't exist")
        }
    }
}

Output

4.png

持久化单个key

Code

func SinglePersistKey(c redis.Conn) {
    colorlog.Info("Func SinglePersistKey...")
    _, err := c.Do("SET", "PersistKey", "Vince", "EX", "10")
    if err != nil {
        colorlog.Error("redis set failed: " + err.Error())
        return
    }

    valueOfPersistKey, err := redis.String(c.Do("GET", "PersistKey"))
    if err != nil {
        colorlog.Error("redis get failed: " + err.Error())
    } else {
        fmt.Println(valueOfPersistKey)
    }

    // make key persistent
    result, err := c.Do("PERSIST", "PersistKey")
    if err != nil {
        colorlog.Error(err.Error())
    } else if result == int64(1) {
        fmt.Println("Persist key successfully")
    } else if result == int64(0) {
        fmt.Println("key persisted already")
    }

    colorlog.Debug("After 10 seconds, the key will not expire, we can still get the value")
    time.Sleep(10 * time.Second)

    valueOfPersistKey, err = redis.String(c.Do("GET", "PersistKey"))
    if err != nil {
        colorlog.Error("redis get failed: " + err.Error())
    } else {
        fmt.Println(valueOfPersistKey)
    }
}

Output

image.png

相关文章

  • 学习1

    吸引观众最简单的方法就是让他们知道在限定的时间限定的地点某人必须尝试某事,而如果失败,就会招致杀身之祸。——哈里·霍尼迪

  • 学习1

    今天下午是我过得最有意义的一个下午,我在阅览室做了两个钟头的题,并且了解广告年鉴。 哈哈,以后我想每天都这样过。

  • 学习1

    1.保护工作簿:不能增加或者删除新的工作表(审阅)2.保护工作表:可以选择设置某一特定的工作表用户可以进行的操作(...

  • 学习1

    明天与今天毫无区别。

  • 学习1

    刷了这么多的英语学习帖子,各种道理在你做之前都是废话,直到你开始实施并且在这个过程中不断补充和修正自己的方法之后才...

  • 学习1

    一、思维导图梳理架构 二、罗列知识要点:(目的:用大纲的方式罗列出重要的知识点;方便践行和实践;摘录原文;包括理念...

  • 学习+1

    [cp]一天之内买卖股票的最佳时间段是什么 (一)开盘建议进行第一次出货: 1.开盘价一般受昨日收盘价影响。若昨日...

  • 学习1

    1 2 3 1 2 3 1、2、链接 引用粗体斜体

  • 学习1

    周五的质量考试,今天安排在会议室学习,内容真多,但很重要,都是一些很有用的东西,这样很好。

  • 学习1

    有没有发现,我们遇到的越重大事情,我们越迟迟不去动手。就好像打翻一盒2000块的拼图散落一地,看着一地的碎片都不知...

网友评论

      本文标题:学习-1

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