这篇文章主要为大家展示了“Redis为什么要避免执行时间复杂度高的命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redis为什么要避免执行时间复杂度高的命令”这篇文章吧。
避免执行时间复杂度高的命令
我们知道 Redis 是「单线程」执行命令的。执行时间复杂度高的命令,很可能会阻塞其它请求。
复杂度高的命令和元素数量有关。通常有以下两种场景。
元素太多,消耗 IO 资源。如 HGETALL、LRANGE,时间复杂度为 O(N)。
计算过于复杂,消费 CPU 资源。如 ZUNIONSTORE,时间复杂度为 O(N)+O(M log(M))
Redis 官方手册,标记了命令执行的时间复杂度。建议你在使用不熟悉的命令前,先查看手册,留意时间复杂度。
实际业务中,你应该尽量避免时间复杂度高的命令。如果必须要用,有两点建议
保证操作的元素数量,尽可能少。
读写分离。复杂命令通常是读请求,可以放到「slave」结点执行。
以上是“Redis为什么要避免执行时间复杂度高的命令”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!