go - 如何在golang中设置redis键的过期时间

标签 go redis

我使用 golang 作为我的后端。我在 redis 中存储一些 token 值。我设置值 HSET 并在 HGETALL 中获取值。我想知道是否有任何功能可以设置 key 的到期时间我存储在 redis 数据库中。我希望在 1 小时后删除 token 及其数据。我正在使用 Redis 的 Redigo 包。谢谢。感谢任何帮助。

I use this to set the struct with has token as key    
redisCon.Do("HMSET", redis.Args{}.Add(hashToken).AddFlat(&dataStruct)...)

最佳答案

Redis documentation不支持像“HMSETEX”这样的命令。 “HMSET”修改哈希键而不是根键。 TTL 在根 key 级别受支持,在散列 key 级别不受支持。因此,在您的情况下,您必须在单独的调用中执行类似的操作:

redisCon.Do("EXPIRE", key, ttl)

您使用哪个客户端连接到 redis?

对于 redigo,您可以使用此 - https://github.com/yadvendar/redigo-wrapper 在那个使用调用

func Expire(RConn *redigo.Conn, key string, ttl int)

对于 goredis - https://godoc.org/gopkg.in/redis.v5#Client.TTL 在这种情况下:

func (c *Client) TTL(key string) *DurationCmd

关于go - 如何在golang中设置redis键的过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40674920/

相关文章:

go - 延迟直接调用函数和在匿名函数中调用它之间的区别?

c - 将 C 移植到 Go,在 if 检查中修改变量

go - 如何使 Go 测试与文件系统一起工作

redis - redis处理大数据的方法

java - 在 Jedis 的单次调用中获取多个键值

sdl - 如何在 Windows 上构建 Go-SDL?

reactjs - 在不同的路线上运行 SPA

java - 为什么 Redis 缓存在我的 Spring Boot 应用程序中没有变空?

bash - 远程访问redis。

ruby-on-rails - 使用 Shopify API 加速获取所有产品