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

时间:2018-12-26 11:00:34

标签: node.js redis chat chatbot node-redis

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

确保在密钥后设置到期时间的一种好方法是将进程包装在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);
                }
            });
        });
    }