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