REDIS中意外的耗时命令-DEL-EXISTS

来源:互联网 发布:mac用哪个word 编辑:程序博客网 时间:2024/06/07 02:26

在排查Redis耗时的过程中发现大量的EXISTS命令耗时很长。很意外,印象中感觉这个这个命令应该是很快执行完的。随后了解到

1. Redis中DEL命令的时间复杂度对于字符串和哈希值而言是O(1),而对于list、set和sorted set而言则是O(N) (这里的 N 是集合中数据项的数目)。所以对于大集合key,DEL命令会很耗时。

2. 在EXISTS命令处理函数中实现了清除过期key的主动策略,会先调用 expireIfNeeded 函数检查要访问的 key 是否过期,如果过期就delete掉这个key。所以对于大集合,EXISTS命令也有可能会很耗时。




原创粉丝点击