如何在节点Redis中为hmset设置到期时间?

Ter*_*ony 1 chat chatbot redis node.js node-redis

我曾经做过client.setex(key, 900, value)存储单个键值。
但是,我想存储一个有过期时间的对象。
我想出了function hmset,但是我不知道如何设置到期时间。
我想用它来存储对话中当前聊天的上下文和文本。
请帮忙

Ita*_*ber 6

要使哈希(或与此有关的任何其他Redis密钥)失效,请调用EXPIRE命令。在您的情况下:

client.hmset(key, ...
client.expire(key, 9000)
Run Code Online (Sandbox Code Playgroud)

  • 问题是那些是 2 个命令,意味着整个操作不是原子的。如果由于某种原因,client.expire() 不会被处理,你最终会得到一个永不过期的记录。如果 Redis 有一个命令来同时设置散列和定义其过期时间,那就太好了。 (4认同)
  • 是的,但是您可以使用`MULTI / EXEC`块或Lua脚本来确保原子性来代替专用命令。 (2认同)