这不能直接完成。您可以在整个hset上添加有效期,但不能在单个字段上添加。如果要执行此操作,可以调用
r.expire('name',time),其中time是到期之前的秒数。
或者,您可以使用
set代替
hset:
for i in range(10): r.set('name:' + str(i), i, ex=time_to_expire_s)这将带走某些功能,因为(例如)您将没有一种好的方法来列出所有以’name:’开头的键,但是它将让您独立设置键的到期时间。
第二种选择是,您可以在中设置过期时间
hset。这需要客户端逻辑,Redis不会为您做任何事情。但您可以执行以下操作:
for i in range(10): r.hset( 'name', i, json.dumps({ 'value': i, 'expiration': time.time() + time_to_expire_s }) )然后,如果您曾经读取过期的值,则认为这是缓存未命中。如果您试图使密钥过期以释放内存,这将无济于事,但是如果您的目标是出于某种正确性原因使密钥过期,那么这可能对您有用。



