【问题标题】:How do I get and set data from redis in Go?如何在 Go 中从 redis 获取和设置数据?
【发布时间】:2021-06-04 15:27:16
【问题描述】:
var rdb *redis.Client
var ctx = context.Background()


    rdb = redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "", // no password set
        DB:       0,  // use default DB
    })

// set for 24 hours
err := rdb.Set(ctx, topics, data, 86400).Err()

// err is nil

val, err := rdb.Get(ctx, topics).Result()

// val is empty

当我手动检查 redis 时,那里什么都没有。

【问题讨论】:

  • 嗨,有趣,也许可以查看Set电话alexedwards.net/blog/working-with-redis的回复
  • err 为空,没有可见错误。
  • 我唯一的猜测是它会立即到期。
  • 值在 86.4µs 后过期。

标签: go redis go-redis


【解决方案1】:

时间不能使用整数

24 * time.Hour 有效,但 86400 无效。

【讨论】:

  • 整数工作得很好。 86400 表示 86400 纳秒 -- pkg.go.dev/time#pkg-constants
  • 啊,好吧,我以为redis只有几秒钟。在其他每个库中都是几秒钟。
  • 这不是关于 Redis,而是关于 Go 如何表示时间。
  • 如果您查看文档,过期参数将是 time.Duration
猜你喜欢
  • 2016-10-22
  • 2021-09-13
  • 1970-01-01
  • 2021-09-28
  • 2011-10-26
  • 2018-02-19
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多