gpt4 book ai didi

redis 键设置为过期实际上没有删除

转载 作者:可可西里 更新时间:2023-11-01 11:32:33 26 4
gpt4 key购买 nike

在 Redis 版本:2.8.19 中是否需要以下行为:

127.0.0.1:6380> set fooxyz 1
OK
127.0.0.1:6380> ttl fooxyz
(integer) -1
127.0.0.1:6380> expire fooxyz 3
(integer) 1
(1.98s)
127.0.0.1:6380> ttl fooxyz
(integer) 0
127.0.0.1:6380> ttl fooxyz
(integer) 0
(0.96s)
127.0.0.1:6380> ttl fooxyz
(integer) 0
127.0.0.1:6380> ttl fooxyz
(integer) 0
127.0.0.1:6380> get fooxyz
"1"

如您所见,我在键 fooxyz 上设置了一个过期时间,它达到 0,但实际上从未被删除。在过期时间后,我继续能够检索 fooxyz 的值。

这是可以预料的吗?它最终会被删除/垃圾收集吗?

根据redis documentation ,

A key is actively expired simply when some client tries to access it, and the key is found to be timed out.

但在这里我有一个积极尝试检索 key 的示例,并且它没有过期。

最佳答案

esilver,我无法在 v3.2.2 中重现你的问题,延迟过期对我来说很好:

127.0.0.1:6379> set fooxyz 1
OK
127.0.0.1:6379> ttl fooxyz
(integer) -1
127.0.0.1:6379> expire fooxyz 3
(integer) 1
127.0.0.1:6379> ttl fooxyz
(integer) -2
127.0.0.1:6379> get fooxyz
(nil)

关于redis 键设置为过期实际上没有删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38937722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com