Golang操作Redis:快速上手 - go-redis 使用指南

文章目录

每隔一段时间不是使用 go-redis 就会忘记用法,不得不去看文档,但官方文档做的不太好,得益于其 API 设计的足够好用可以看代码了解使用方法,为了避免每次都要阅读代码回忆使用方法,特别花时间写了这个系列的教程文章作为笔记,希望对你也有所帮助。

在现代的分布式系统中,Redis 作为一个高性能的内存数据库被广泛应用。Redis 支持丰富的数据结构,提供了多种多样的功能。而 go-redis 则是一个 Redis 客户端库,可以方便地在 Go 语言中操作 Redis。本文将介绍 go-redis 的基本用法,帮助你快速上手。

👉 点击查看 go-redis 使用指南目录

在《go-redis 使用指南》系列文章中,我们将详细介绍如何在 Golang 项目中使用 redis/go-redis 库与 Redis 进行交互。以下是该系列文章的全部内容:

  1. Golang 操作 Redis:快速上手 - go-redis 使用指南
  2. Golang 操作 Redis:连接设置与参数详解 - go-redis 使用指南
  3. Golang 操作 Redis:基础的字符串键值操作 - go-redis 使用指南
  4. Golang 操作 Redis:如何设置 key 的过期时间 - go-redis 使用指南
  5. Golang 操作 Redis:Hash 哈希数据类型操作用法 - go-redis 使用指南
  6. Golang 操作 Redis:Set 集合数据类型操作用法 - go-redis 使用指南
  7. Golang 操作 Redis:为 Hash 中的字段设置过期时间 - go-redis 使用指南
  8. Golang 操作 Redis:List 列表数据类型操作用法 - go-redis 使用指南
  9. Golang 操作 Redis:SortedSet 有序集合数据类型操作用法 - go-redis 使用指南
  10. Golang 操作 Redis:bitmap 数据类型操作用法 - go-redis 使用指南
  11. Golang 操作 Redis:事务处理操作用法 - go-redis 使用指南
  12. Golang 操作 Redis:地理空间数据类型操作用法 - go-redis 使用指南
  13. Golang 操作 Redis:HyperLogLog 操作用法 - go-redis 使用指南
  14. Golang 操作 Redis:Pipeline 操作用法 - go-redis 使用指南
  15. Golang 操作 Redis:PubSub发布订阅用法 - go-redis 使用指南
  16. Golang 操作 Redis:布隆过滤器(Bloom Filter)操作用法 - go-redis 使用指南
  17. Golang 操作 Redis:Cuckoo Filter操作用法 - go-redis 使用指南
  18. Golang 操作 Redis:Stream操作用法 - go-redis 使用指南
golang redis go-redis

安装 go-redis

首先,你需要安装 go-redis。确保你已经安装了 Go 语言环境,然后可以使用以下命令来安装 go-redis:

go get github.com/redis/go-redis/v9

初始化 go-redis 客户端

在开始操作 Redis 之前,需要先初始化一个 Redis 客户端。以下是一个简单的示例代码:

package main

import (
    "context"
    "fmt"
    "github.com/redis/go-redis/v9"
)

var ctx = context.Background()

func main() {
    rdb := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379", // Redis 服务器地址
        Password: "",               // 没有密码则留空
        DB:       0,                // 使用默认数据库
    })

    // 测试连接
    pong, err := rdb.Ping(ctx).Result()
    if err != nil {
        fmt.Println("无法连接到 Redis:", err)
        return
    }
    fmt.Println("连接成功:", pong)
}

go-redis 常用命令用法

go-redis 设置和获取值

在 Redis 中,最基本的操作就是设置和获取值。以下示例展示了如何使用 SetGet 命令:

// 设置一个键值对
err := rdb.Set(ctx, "name", "Go-Redis", 0).Err()
if err != nil {
    fmt.Println("设置值失败:", err)
    return
}

// 获取一个键值对
val, err := rdb.Get(ctx, "name").Result()
if err != nil {
    fmt.Println("获取值失败:", err)
    return
}
fmt.Println("name:", val)

go-redis 哈希操作

Redis 的哈希数据结构非常适合存储对象。以下示例展示了如何使用 HSetHGet 命令:

// 设置哈希字段
err := rdb.HSet(ctx, "user:1000", "name", "John", "age", 30).Err()
if err != nil {
    fmt.Println("设置哈希字段失败:", err)
    return
}

// 获取哈希字段
name, err := rdb.HGet(ctx, "user:1000", "name").Result()
if err != nil {
    fmt.Println("获取哈希字段失败:", err)
    return
}
fmt.Println("user:1000 name:", name)

go-redis 列表操作

Redis 列表可以用于实现队列和栈的功能。以下示例展示了如何使用 LPushLPop 命令:

// 将值推入列表
err := rdb.LPush(ctx, "tasks", "task1", "task2").Err()
if err != nil {
    fmt.Println("推入列表失败:", err)
    return
}

// 从列表弹出值
task, err := rdb.LPop(ctx, "tasks").Result()
if err != nil {
    fmt.Println("弹出列表值失败:", err)
    return
}
fmt.Println("task:", task)

go-redis 集合操作

Redis 集合是一种无序集合,适合存储不重复的元素。以下示例展示了如何使用 SAddSMembers 命令:

// 添加元素到集合
err := rdb.SAdd(ctx, "tags", "redis", "go", "database").Err()
if err != nil {
    fmt.Println("添加到集合失败:", err)
    return
}

// 获取集合中的所有元素
tags, err := rdb.SMembers(ctx, "tags").Result()
if err != nil {
    fmt.Println("获取集合元素失败:", err)
    return
}
fmt.Println("tags:", tags)

go-redis 有序集合操作

Redis 有序集合用于存储带有分数的元素,适合排行榜等场景。以下示例展示了如何使用 ZAddZRange 命令:

// 添加元素到有序集合
err := rdb.ZAdd(ctx, "scores", &redis.Z{Score: 100, Member: "Alice"}, &redis.Z{Score: 200, Member: "Bob"}).Err()
if err != nil {
    fmt.Println("添加到有序集合失败:", err)
    return
}

// 获取有序集合中的元素
scores, err := rdb.ZRangeWithScores(ctx, "scores", 0, -1).Result()
if err != nil {
    fmt.Println("获取有序集合元素失败:", err)
    return
}
for _, z := range scores {
    fmt.Printf("%s: %f\n", z.Member, z.Score)
}

结语

本文介绍了 go-redis 的一些基本用法,包括设置和获取值、哈希操作、列表操作、集合操作和有序集合操作。在实际开发中,go-redis 提供了更多强大的功能,你可以参考 官方文档 以获取更详细的信息。

希望这篇文章能帮助你快速上手 go-redis,点击 go-redis 使用指南 可查看更多相关教程!


也可以看看


小而赚副业指南

分享低成本靠谱赚钱副业,获取实用的搞钱指南,开启你的副业赚钱之旅吧!

全国大流量卡免费领

19元月租ㆍ超值优惠ㆍ长期套餐ㆍ免费包邮ㆍ官方正品