有没有比EXISTS
更快的方式来检查Redis中是否存在键?
我的问题是,我在Redis中有超过100万条记录,我需要进行key_exists检查。这应该在10毫秒内完成。
有什么好的想法吗?
使用EXISTS
命令是最快的方式,这应该非常快。如果您觉得它太慢了,那可能是您的服务器和redis服务器之间的延迟问题,而与命令本身无关。
exists
操作,而是可以在您的索引集/有序集上执行sismember
或zscore
操作。例如,如果您有与用户、消息和排行榜相关的键,则可以保留名为keys:users
、keys:messages
等的集合。我开源了一个库,帮助管理您的键名称,并使此过程变得更加容易 https://github.com/imikemiller/Pkeys。exists
的时间复杂度为O(1), 所以它是最快的算法可能。
你的问题可能来自其他方面,但是您可以使用 SLOWLOG
命令来检查exists
的实际执行时间。
时间复杂度:O(N),其中N是要检查的键数。
因此,仍然是O(1)和最快的可能方式。 - Amin Shojaei
EXISTS
的时间复杂度为O(1)
,这已经是最好的了。 - Federkun