如何在节点redis中设置hmset的过期时间?

How to set expiration time for hmset in node redis?

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

要使哈希(或与此相关的任何其他 Redis 密钥)过期,请调用 EXPIRE 命令。你的情况:

client.hmset(key, ...
client.expire(key, 9000)

确保在密钥之后设置过期的一个好方法是将进程包装在 ES6 异步函数中:

async function (keyString, token, ttl) {
        return new Promise(function(resolve, reject) {
            redisClient.hmset("auth", keyString, token, function(error,result) {
                if (error) {
                    reject(error);
                } else {
                    redisClient.expire(keyString, ttl)
                    resolve(result);
                }
            });
        });
    }

由于 hmset 已弃用 (),您可以使用 hsetexpire 使用 pipeline

pipe = client.pipeline()
pipe.hset(key, mapping=your_object).expire(duration_in_sec).execute()

# for example:
pipe.hset(key, mapping={'a': 1, 'b': 2}).expire(900).execute()

Note: Pipeline does not ensure atomicity.