在 Redis 中检查密钥是否存在的最快方法 - php

Fastest way to check key exists in redis - php

有没有比EXISTS更快的方法来检查redis中是否存在一个key?

我的问题是,我在 redis 中有超过 100 万条记录,我需要进行 key_exists 检查。这应该在 10 毫秒内发生。

有什么想法吗?

使用EXISTS命令是最快的方法,这应该非常快。如果您觉得它太慢,可能是您的服务器和 redis 服务器之间的延迟,与命令本身无关。

为了减少您需要使用一些符合您的应用程序逻辑的模式来保留密钥索引的时间。这意味着您不必在所有键上执行 exists,而可以在索引 set/zset 上执行 sismemberzscore。因此,例如,您拥有与用户、消息和排行榜等相关的密钥,您保留名为 keys:userskeys:messages 等的集合。我有一个刚刚开源的库来帮助管理您的密钥名称并使这些东西有点更容易 https://github.com/imikemiller/Pkeys

exists 的时间复杂度为 O(1),因此它是最快的算法

您的问题来自其他地方,但是您可以使用 SLOWLOG command 检查 exists 的实际执行时间以确保。