美文网首页
Go操作redis

Go操作redis

作者: 明天你好_ee9a | 来源:发表于2020-12-23 21:42 被阅读0次

go操作redis就直接简单粗暴了,直接使用的是redis原生操作命令

简单的string操作
package main

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

func main() {
    conn,err := redis.Dial("tcp","127.0.0.1:6379")
    if err != nil {
        fmt.Println("connect redis error :",err)
        return
    }
    defer conn.Close()

    //设置值
    _, err = conn.Do("SET", "name", "Jinanav")
    if err != nil {
        fmt.Println("error:", err)
    }
    //获取值
    name, err := redis.String(conn.Do("GET", "name"))
    if err != nil {
        fmt.Println("error:", err)
    } else {
        fmt.Printf("My name is: %s \n", name)
    }
}

查看执行结果


image.png
设置过期时间
//设置过期时间
    _, err = conn.Do("expire", "name", 30) //10秒过期
    if err != nil {
        fmt.Println("error: ", err)
        return
    }

查看过期状态


image.png

还剩25秒过期

列表操作
//列表操作 左入队
    _, err = conn.Do("LPUSH", "test", "one","two","three")
    if err != nil {
        fmt.Println("redis mset error:", err)
    }
    //左出队 左进左出
    res, err := redis.String(conn.Do("LPOP", "test"))
    if err != nil {
        fmt.Println("error:", err)
    } else {
        res_type := reflect.TypeOf(res)
        fmt.Printf("res type : %s \n", res_type)
        fmt.Printf("res  : %s \n", res)
    }
image.png

查看列表的长度

res, err := conn.Do("LLEN", "test")

    if err != nil {
        fmt.Println("error:", err)
    } else {
        res_type := reflect.TypeOf(res)
        fmt.Printf("res type : %s \n", res_type)
        fmt.Printf("res  : %d \n", res)
    }
image.png
哈希操作
    _, err = conn.Do("HSET", "student","age",18)
    if err != nil {
        fmt.Println("set error:", err)
    }
    res, err := redis.Int64(conn.Do("HGET", "student","age"))
    if err != nil {
        fmt.Println("get error:", err)
    } else {
        res_type := reflect.TypeOf(res)
        fmt.Printf("res type : %s \n", res_type)
        fmt.Printf("res  : %d \n", res)
    }

查看结果


image.png
集合操作

···
v, err := redis.Int64(conn.Do("SADD", "testset", "我加入到集test啦"))
if err != nil {
log.Println("error:", err)
return
}

log.Println("value:", v)

//读取集合
list_set, err := redis.Values(conn.Do("SMEMBERS", "testset"))
if err != nil {
    fmt.Println("获取test_set集合中的值失败:", err)
}
for _, v := range list_set {
    if str, ok := v.([]uint8); ok {
        fmt.Println("testset:", string(str))
    }
}

···
查看结果


image.png

其他操作命令大概也是以此类推了,也可以阅读相关文档

相关文章

  • go redis

    go 操作redis操作 Pipelining(管道) 发布/订阅 事务

  • Go语言操作Redis

    Go语言操作Redis 在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。...

  • 在Go语言中基础的Redis操作

    在Go语言中基础的Redis操作 需要先安装redigo Go语言Redis客户端的简单示例 连接池 POOL 为...

  • Go操作redis

  • golang操作Redis&Mysql&RabbitMQ方法

    golang[https://www.php.cn/be/go/]操作Redis&Mysql&RabbitMQ: ...

  • golang 操作redis

    golang操作redis一般有两种库,一个是go-redis,一个是redigo,在这里我们主要介绍go-red...

  • Go语言操作Redis

    1. 知识储备 知道Redis是个啥?知道Redis的基础命令怎么操作测试的环境中安装了Redis的服务端(无论是...

  • go语言操作Redis

    一、Redis简介 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题...

  • golang操作redis

    项目依赖地址go-redis https://github.com/go-redis/redis[https://...

  • Golang使用Redis

    go使用Redis 文档链接:https://godoc.org/github.com/go-redis/redis

网友评论

      本文标题:Go操作redis

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