Node.js Redis hset 设置过期时间:两种方法详解
在 Redis 中,hset 命令不支持直接设置过期时间。但是,可以使用 Redis 的一些其他命令来实现设置过期时间的效果。
方法一:使用 expire 命令
可以使用 expire 命令来设置整个哈希表的过期时间,而不是单个字段。首先使用 hset 命令设置字段值,然后使用 expire 命令设置哈希表的过期时间,如下所示:
// 设置字段值
redisClient.hset('myhash', 'field1', 'value1', redis.print);
// 设置过期时间为 60 秒
redisClient.expire('myhash', 60, redis.print);
这样,当哈希表中的所有字段都过期后,整个哈希表也会过期。
方法二:使用 setex 命令
可以使用 setex 命令来设置单个字段的过期时间。setex 命令可以设置一个带有过期时间的字符串值,因此可以将哈希表的字段名和值拼接成一个字符串,然后使用 setex 命令设置过期时间,如下所示:
// 将字段名和值拼接成一个字符串
const fieldValuePair = 'field1:value1';
// 设置带有过期时间的字符串值
redisClient.setex(fieldValuePair, 60, '', redis.print);
这样,当过期时间到期后,这个字符串值就会自动被删除,相当于删除了哈希表中的这个字段。
需要注意的是,使用 setex 命令来设置过期时间的方式可能会对一些 Redis 命令产生影响。例如,如果使用 hgetall 命令来获取整个哈希表的值,就无法获取到已经过期的字段。因此,建议在使用 setex 命令设置过期时间时,只设置单个字段的过期时间,而不是整个哈希表的过期时间。
原文地址: https://www.cveoy.top/t/topic/mznT 著作权归作者所有。请勿转载和采集!