检查密钥的最快方法存在于redis-php中

时间:2016-12-19 12:55:03

标签: php redis predis phpredis

有没有比EXISTS更快的方法来检查密钥是否存在于redis中?

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

围绕这个想法?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

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

您的问题出在其他地方,但是您可以使用SLOWLOG command来确定exists的实际执行时间。