加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang基础-redis使用

发布时间:2020-12-16 09:41:59 所属栏目:大数据 来源:网络整理
导读:redis安装 set类型 hash类型 批量set类型 队列操作 redisPool redis安装 安装完毕后解压目录如下 点击redis-server.exe启动redis 然后在启动cmd客户端 set类型 package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func main() { var p * int
        • redis安装
        • set类型
        • hash类型
        • 批量set类型
        • 队列操作
        • redisPool

redis安装

安装完毕后解压目录如下

点击redis-server.exe启动redis


然后在启动cmd客户端

set类型

package main

import (
    "fmt"

    "github.com/garyburd/redigo/redis"
)

func main() {
    var p *int
    var a int
    p = &a
    *p = 0

    c,err := redis.Dial("tcp","localhost:6379")
    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
    }
//redis-cli.exe -h 127.0.0.1 -p 6379
    r,err := redis.Int(c.Do("Get","abc"))
    if err != nil {
        fmt.Println("get abc failed,err)
        return
    }

    fmt.Println(r)
}

输出如下:

PS E:golanggo_prosrcrediss> go run main.go
100

hash类型

package main

import (
    "fmt"
    "github.com/garyburd/redigo/redis"
)

func main() {
    c,err := redis.Dial("tcp","localhost:6379")
    if err != nil {
        fmt.Println("conn redis failed,err)
        return
    }

    defer c.Close()
    _,err = c.Do("HSet","books",1000)
    if err != nil {
        fmt.Println(err)
        return
    }

    r,err := redis.Int(c.Do("HGet","abc"))
    if err != nil {
        fmt.Println("get abc failed,err)
        return
    }

    fmt.Println(r)
}

输出如下:

PS E:golanggo_prosrcrediss> go run main.go
1000

批量set类型

package main

import (
    "fmt"
    "github.com/garyburd/redigo/redis"
)

func main() {
    c,err = c.Do("MSet",100,"efg",300)
    if err != nil {
        fmt.Println(err)
        return
    }

    r,err := redis.Ints(c.Do("MGet","efg"))
    if err != nil {
        fmt.Println("get abc failed,err)
        return
    }

    for _,v := range r {
        fmt.Println(v)
    }
}

输出如下:

PS E:golanggo_prosrcrediss> go run main.go
100
300

队列操作

package main

import (
    "fmt"
    "github.com/garyburd/redigo/redis"
)

func main() {
    c,err = c.Do("lpush","book_list","ceg",30)
    if err != nil {
        fmt.Println(err)
        return
    }

    r,err := redis.String(c.Do("lpop","book_list"))
    if err != nil {
        fmt.Println("get abc failed,err)
        return
    }

    fmt.Println(r)
}

输出如下:

PS E:golanggo_prosrcrediss> go run main.go
30

redis.Pool

package main

import (
    "fmt"

    "github.com/garyburd/redigo/redis"
)

var pool *redis.Pool

func init() {
    pool = &redis.Pool{
        MaxIdle:     16,MaxActive:   0,IdleTimeout: 300,Dial: func() (redis.Conn,error) {
            return redis.Dial("tcp","localhost:6379")
        },}
}

func main() {

    c := pool.Get()
    defer c.Close()

    _,err := c.Do("Set", 100)
    if err != nil {
        fmt.Println(err)
        return
    }

    r,err)
        return
    }

    fmt.Println(r)
    pool.Close()
}

输出如下:

PS E:golanggo_prosrcrediss> go run main.go
100

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读