Golang Go语言中 github.com/go-redis/redis 库,set 一个 key 时,如何设置过期时间?

发布于 1周前 作者 gougou168 来自 Go语言

Golang Go语言中 github.com/go-redis/redis 库,set 一个 key 时,如何设置过期时间?

redisCli.Set(ip, nowTime, 6).Err(),想 6 秒后将这个 key 删除,但是这样写有问题,把 6 改为 0 就没事儿了,小白求解

7 回复

set(key, value, expiration)

更多关于Golang Go语言中 github.com/go-redis/redis 库,set 一个 key 时,如何设置过期时间?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


时间需要 time.Duration(expiration)

如果是 6 秒:redisCli.Set(ip, nowTime, 6*time.Second)

你传入的 6 是指 6 毫秒,6 秒=6 * time.Second

time.Duration 了解一下






非常感谢大家的回复,已经清楚,怪我基础太差了,嘿嘿

在 Go 语言中使用 github.com/go-redis/redis 库来设置带有过期时间的 key 非常简单。你可以使用 Set 方法,并通过其选项参数来指定过期时间。以下是一个具体的示例,展示了如何设置 key 并附带一个过期时间:

package main

import (
	"context"
	"fmt"
	"time"

	"github.com/go-redis/redis/v8"
)

func main() {
	rdb := redis.NewClient(&redis.Options{
		Addr: "localhost:6379", // 你的 Redis 服务器地址
		// Password: "", // 如果你的 Redis 服务器设置了密码,请在这里填写
		DB:   0,  // 使用哪个数据库(默认是0)
	})

	ctx := context.Background()

	// 设置 key "mykey" 的值为 "myvalue",并设置过期时间为 1 小时
	err := rdb.Set(ctx, "mykey", "myvalue", 1*time.Hour).Err()
	if err != nil {
		fmt.Println("设置 key 失败:", err)
		return
	}

	fmt.Println("设置 key 成功,带有过期时间 1 小时")
}

在这个示例中,rdb.Set 方法的第四个参数是一个 time.Duration 类型的值,表示 key 的过期时间。你可以根据需要调整这个值,例如使用 time.Minute 来设置分钟级别的过期时间,或者使用 time.Second 来设置秒级别的过期时间。确保你的 Redis 服务器正在运行,并且连接参数(如地址和数据库编号)正确无误。

回到顶部