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