Redis 4.x系列(十三):Redis 正确的使用 API
Redis 提供了丰富的 API 来操作数据,某些业务需求不只一个 API 可实现,但实现同一功能的不同的 API 在性能上是不一样的。
Redis 是内存级别单线程处理请求,对性能非常在乎。正确的使用 API 就显得尤为重要。
衡量 API 算法性能的一个很重要的指标是**时间复杂度 O(N)**,Redis 命令官方档都明确给出了 API 命令的时间复杂度。
图片来源:https://github.com/sf-wdi-31/algorithm-complexity-and-big-o
**时间复杂度 O(N)**:N 是哈希的大小(size)。
例如在大数据量时,使用了时间复杂度为 O(N) 的命令,可能会遍历所有元素很可能造成服务阻塞,对于高并发环境下是难以接受的,对于使用那些时间复杂度大于 **O(N) **的命令要特别谨慎。
Redis 命令时间复杂度是 O(N) 的有:HGETALL, HKEYS , KEY * , HVALS , FLUSHALL, FLUSHDB等。
可使用慢日志来记录 Redis 服务器中处理的慢命令,查看那些操作拖慢了 Redis 服务的响应速度。
Redis 4.x系列(十三):Redis 正确的使用 API
http://blog.gxitsky.com/2018/11/06/Redis-13-use-correct-api/