使用 TTL 与主动发送使密钥无效的请求以使缓存中的密钥无效的优缺点是什么?

What are the pros and cons of using TTL vs actively sending a request to invalidate a key to invalidate a key in a cache?

是否有关于像 Redis 这样的缓存的密钥失效的最佳实践?我应该让密钥在 TTL 过期后消失,还是应该对有问题的密钥调用删除以从缓存中删除该密钥?

主动调用删除操作是否会增加负载并损害缓存的吞吐量?

您似乎在询问在将 Redis 用作缓存时如何处理 Redis 中的内存管理。 Redis 实现了一些配置 maxmemory maxmemory-policymaxmemory-samplesreplica-ignore-maxmemoryactive-expire-effort。有关这些的更多信息 details,请参阅您的版本的自我文档。

Redis 配置允许您在 CPU、内存和延迟方面进行权衡,而无需进行外部内存管理。话虽如此,当您的应用程序知道状态更改时,DEL 可用于使密钥无效。并且 TTL 集可以与一些内存管理策略一起使用。