从redis删除键/值 - 幻影密钥未删除



我正在使用弹簧redis存储库,我对删除操作和幻影键感到困惑。

执行删除时,幻影密钥未删除,是正常行为吗?如果是,当将原始密钥从代码中删除时,是否可以强制删除幻影密钥。

我期望删除删除原始密钥和相关的幻影键。

我计划用于时间表功能,以确保一段时间后没有被我的应用程序删除的密钥。

在相关域对象上设置的注释

@RedisHash(value = "requestContext", timeToLive = 9000)

以这种方式执行删除:

repository.delete(id)

预先感谢您的帮助。

当您从redis中删除键/值时,幻象密钥不会立即删除。春季数据redis 管理幻影密钥,以管理辅助索引以及其他功能。弹簧数据重新持续了原始哈希作为幻影哈希的副本,其TTL略长(5分钟)。这意味着:redis中的幻影 ttl比常规键TTL多5分钟。原始哈希过期后,弹簧数据重新加载幻影哈希(Hash)进行清理,例如删除辅助索引等的参考文献。阅读更多:redis密钥到期

当有效期设置为正值时,执行了Expire命令。除了持续原始版本外,幻影副本还在redis中持续存在,并将在原始版本后5分钟到期。这样做是为了使存储库支持能够通过Springs ApplicationEventPublisher发布REDISKEYEDEXPIEREVENT,即使键到期,也可以通过Springs ApplicateVentPublisher发布过期的值。使用Spring Data Redis存储库在所有连接的应用程序上都会收到到期事件。

最新更新