• golang redis_example


    main.go

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:16379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
        defer c.Close()
        _, err = c.Do("Set", "abc", 100)
        if err != nil {
            fmt.Println(err)
            return
        }
        r, err := redis.Int(c.Do("Get", "abc"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
        fmt.Println("get from redis", r)
    }

    hash.go

    package main
    
    import (
        "fmt"
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:16379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
        defer c.Close()
        _, err = c.Do("HSet", "books", "abc", 100)
        if err != nil {
            fmt.Println(err)
            return
        }
        r, err := redis.Int(c.Do("HGet", "books", "abc"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
        fmt.Println(r)
    }

    list.go

    package main
    
    import (
        "fmt"
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:16379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
        defer c.Close()
        _, err = c.Do("lpush", "book_list", "abc", "ceg", 300)
        if err != nil {
            fmt.Println(err)
            return
        }
        r, err := redis.String(c.Do("rpop", "book_list"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
        fmt.Println(r)
    }

    mset.go

    package main
    
    import (
        "fmt"
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:16379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
        defer c.Close()
        _, err = c.Do("MSet", "abc", 100, "efg", 300)
        if err != nil {
            fmt.Println(err)
            return
        }
        r, err := redis.Ints(c.Do("MGet", "abc", "efg"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
        for _, v := range r {
            fmt.Println(v)
        }
    }

    exprie.go

    package main
    
    import (
        "fmt"
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:16379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
        defer c.Close()
        _, err = c.Do("expire", "abc", 10)
        if err != nil {
            fmt.Println(err)
            return
        }
    }

    pool.go

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
        "time"
    )
    
    var pool *redis.Pool
    
    //初始化一个pool
    func newPool(server, password string) *redis.Pool {
        return &redis.Pool{
            MaxIdle:     64,
            MaxActive:   1000,
            IdleTimeout: 240 * time.Second,
            Dial: func() (redis.Conn, error) {
                c, err := redis.Dial("tcp", server)
                if err != nil {
                    return nil, err
                }
                /*
                   if _, err := c.Do("AUTH", password); err != nil {
                   c.Close()
                   return nil, err
                   }*/
                return c, err
            },
            TestOnBorrow: func(c redis.Conn, t time.Time) error {
                if time.Since(t) < time.Minute {
                    return nil
                }
                _, err := c.Do("PING")
                return err
            },
        }
    }
    
    func main() {
        pool = newPool("localhost:16379", "")
        for {
            time.Sleep(time.Second)
            conn := pool.Get()
            conn.Do("set", "abc", 100)
    
            r, err := redis.Int(conn.Do("get", "abc"))
            if err != nil {
                fmt.Printf("do failed, err:%v
    ", err)
                continue
            }
    
            fmt.Printf("get from redis, result:%v
    ", r)
        }
    
        /*
            c, err := redis.Dial("tcp", "localhost:16379")
            if err != nil {
                fmt.Println("conn redis failed,", err)
                return
            }
            defer c.Close()
            _, err = c.Do("Set", "abc", 100)
            if err != nil {
                fmt.Println(err)
                return
            }
            r, err := redis.Int(c.Do("Get", "abc"))
            if err != nil {
                fmt.Println("get abc failed,", err)
                return
            }
            fmt.Println("get from redis", r)
        */
    }
  • 相关阅读:
    cogs 2355. [HZOI 2015] 有标号的DAG计数 II
    洛谷 P4705 玩游戏
    LOJ #6436. 「PKUSC2018」神仙的游戏
    CF712D Memory and Scores
    CF 553E Kyoya and Train
    洛谷 P4841 城市规划
    [转载]Java集成PageOffice在线打开编辑word文件
    [转载]Java读取Excel中的单元格数据
    [转载]Java操作Excel文件的两种方案
    [转载]Java导出Excel
  • 原文地址:https://www.cnblogs.com/sunlong88/p/11740768.html
Copyright © 2020-2023  润新知