首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Redis 学习笔记8 - 使用 go-redis 访问 redis

Redis 学习笔记8 - 使用 go-redis 访问 redis

作者头像
张云飞Vir
发布2020-04-02 17:54:07
发布2020-04-02 17:54:07
11.2K0
举报
文章被收录于专栏:写代码和思考写代码和思考

0. 背景

Redis 的 API 非常简单和易于编程。处理使用命令行工具来连接,也可以用你喜欢的语言,本文描述使用 Go 语言 通过 go-redis 库连接。

个人更建议 使用 redigo库 来操作redis数据,参考我的另一篇文章使用 redigo 访问 redis

1.go-redis 介绍

go-redis 是一个基于 Go 语言的 ,类型安全的 Redis 连接客户端框架

Github地址:https://github.com/go-redis/redis

go-redis 是个很流行的类库

2. 操作实例

2.1 安装

使用 go Modules 来安装:

代码语言:javascript
复制
  go mod init github.com/my/repo

2.2 导入包 Import:

代码语言:javascript
复制
import "github.com/go-redis/redis/v7"

2.3 建立连接

使用 NewClient 指定 ip地址,和密码后建立连接。

使用 Ping 方法测试连接是否通畅。

代码语言:javascript
复制
func testConn() {
    client := redis.NewClient(&redis.Options{
        Addr:     "dev.com:6379",
        Password: "123456", // no password set
        DB:       0,        // use default DB
    })

    pong, err := client.Ping().Result()
    if err != nil {
        fmt.Println("reis 连接失败:", pong, err)
        return
    }
    fmt.Println("reis 连接成功:", pong)

}

2.4 判断 key 是否存在

代码语言:javascript
复制
    // 判断 key 是否存在
    val, err := client.Get("user:zhangyunfeiVir").Result()
    if err == redis.Nil {
        fmt.Println("key2 does not exist")
    } else if err != nil {
        panic(err)
    } else {
        fmt.Println("读取:", val)
    }

2.4 set 和 get

代码语言:javascript
复制
// set  一个值
    err = client.Set("user:zhangyunfeiVir", "hello", 0).Err()
    if err != nil {
        fmt.Println(err)
        panic(err)
    }

    //  get 一个值
    val2, err := client.Get("user:zhangyunfeiVir").Result()
    if err != nil {
        fmt.Println(err)
        panic(err)
    }
    fmt.Println("读取:", val2)

2.5 设置一个值,指定过期时间

代码语言:javascript
复制
    // set key value ,并指定 过期时间
    set, err := client.SetNX("key", "value", 10*time.Second).Result()

2.6 Do 方法支持更灵活的指令

代码语言:javascript
复制
// custom command
res, err := client.Do("set", "key", "value").Result()

更多参阅 API文档

3. 参考

https://github.com/go-redis/redis

文档

https://godoc.org/github.com/go-redis/redis

END

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 背景
  • 1.go-redis 介绍
  • 2. 操作实例
    • 2.1 安装
    • 2.2 导入包 Import:
    • 2.3 建立连接
    • 2.4 判断 key 是否存在
    • 2.4 set 和 get
    • 2.5 设置一个值,指定过期时间
    • 2.6 Do 方法支持更灵活的指令
  • 3. 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档