在Redis中,有一个SETEX
命令允许我设置一个具有过期时间的键,是否存在一个多值设置版本的该命令并且也有TTL选项?
MSET
和MSETNX
命令都没有这样的选项。
在Redis中,有一个SETEX
命令允许我设置一个具有过期时间的键,是否存在一个多值设置版本的该命令并且也有TTL选项?
MSET
和MSETNX
命令都没有这样的选项。
我也在寻找这种操作,没有找到任何东西,所以我用MULTI/EXEC实现了它:
MULTI
expire key1
expire key2
expire key3
EXEC
hmset
存储键,然后在哈希键上使用expire
。
这将为哈希设置ttl,因此也为其中所有键设置ttl。EVAL "<multi_ttl_script>" N key1 key2 ... value1 ttl1 value2 ttl2 ...
很遗憾我们不能使用mset设置过期时间,以下是一个解决方案,适用于使用nodejs和redis库的人:
// expires the key at next mid-night
let now = moment()
let endOfDay = moment().endOf('day')
let timeToLiveInSeconds = endOfDay.diff(now, 'seconds')
redisClient.expire(keyName, timeToLiveInSeconds)