### 1. 安装 Redis 客户端库
```bash
go get github.com/go-redis/redis/v8
```

---

### 2. 连接 Redis
```go
package main

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

var ctx = context.Background()

func main() {
    // 创建 Redis 客户端
    rdb := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379", // Redis 地址
        Password: "",              // 密码（没有则为空）
        DB:       0,               // 默认数据库
    })

    // 检查连接
    pong, err := rdb.Ping(ctx).Result()
    if err != nil {
        panic(err)
    }
    fmt.Println("Connected to Redis:", pong)
}
```

---

### 3. 基本操作

#### 设置键值对
```go
// 设置键为 "name"，值为 "Alice"
err := rdb.Set(ctx, "yzk_study@163.com", "123456", 600).Err()
if err != nil {
    panic(err)
}
```

#### 获取值
```go
val, err := rdb.Get(ctx, "yzk_study@163.com").Result()
if err != nil {
    panic(err)
}
fmt.Println("His Verification code", val) // 输出: name: Alice
```

---

### 4. 数据结构操作

#### 哈希（Hashes）
```go
client.HMSet("user:1", map[string]interface{}{"name": "Bob", "age": 30})
// 获取哈希字段
age, err := client.HGet("user:1", "age").Int()
if err != nil {
	panic(err)
}
fmt.Println("User age:", age) // 输出: User age: 30
```

#### 列表（Lists）
```go
// 向列表尾部添加元素
rdb.RPush(ctx, "tasks", "task1", "task2")

// 获取列表范围
tasks, err := rdb.LRange(ctx, "tasks", 0, -1).Result()
fmt.Println("Tasks:", tasks) // 输出: Tasks: [task1 task2]
```

#### 集合（Sets）
```go
// 添加元素到集合
client.SAdd("tags", "golang", "redis")
// 检查元素是否存在
var exists bool
exists, err = client.SIsMember("tags", "golang").Result()
if err != nil {
	panic(err)
}
```

---

### 5. 设置过期时间
```go
// 设置键值对，10秒后过期
rdb.Set("temp_key", "expiring soon", 10*time.Second)

// 单独设置过期时间
rdb.Expire("temp_key", 10*time.Second)
```

---

### 6. 删除键
```go
rdb.Del("name")
```


更详细文档参考：[go-redis 官方文档](https://redis.uptrace.dev/)