在 Redis 中检查密钥是否存在的最快方法 - php
Fastest way to check key exists in redis - php
有没有比EXISTS
更快的方法来检查redis中是否存在一个key?
我的问题是,我在 redis 中有超过 100 万条记录,我需要进行 key_exists 检查。这应该在 10 毫秒内发生。
有什么想法吗?
使用EXISTS
命令是最快的方法,这应该非常快。如果您觉得它太慢,可能是您的服务器和 redis 服务器之间的延迟,与命令本身无关。
为了减少您需要使用一些符合您的应用程序逻辑的模式来保留密钥索引的时间。这意味着您不必在所有键上执行 exists
,而可以在索引 set/zset 上执行 sismember
或 zscore
。因此,例如,您拥有与用户、消息和排行榜等相关的密钥,您保留名为 keys:users
、 keys:messages
等的集合。我有一个刚刚开源的库来帮助管理您的密钥名称并使这些东西有点更容易 https://github.com/imikemiller/Pkeys
exists
的时间复杂度为 O(1),因此它是最快的算法。
您的问题来自其他地方,但是您可以使用 SLOWLOG
command 检查 exists
的实际执行时间以确保。
有没有比EXISTS
更快的方法来检查redis中是否存在一个key?
我的问题是,我在 redis 中有超过 100 万条记录,我需要进行 key_exists 检查。这应该在 10 毫秒内发生。
有什么想法吗?
使用EXISTS
命令是最快的方法,这应该非常快。如果您觉得它太慢,可能是您的服务器和 redis 服务器之间的延迟,与命令本身无关。
为了减少您需要使用一些符合您的应用程序逻辑的模式来保留密钥索引的时间。这意味着您不必在所有键上执行 exists
,而可以在索引 set/zset 上执行 sismember
或 zscore
。因此,例如,您拥有与用户、消息和排行榜等相关的密钥,您保留名为 keys:users
、 keys:messages
等的集合。我有一个刚刚开源的库来帮助管理您的密钥名称并使这些东西有点更容易 https://github.com/imikemiller/Pkeys
exists
的时间复杂度为 O(1),因此它是最快的算法。
您的问题来自其他地方,但是您可以使用 SLOWLOG
command 检查 exists
的实际执行时间以确保。