专业编程基础技术教程

网站首页 > 基础教程 正文

禁用O(n) 复杂度方法-redis

ccvgpt 2024-08-14 15:38:00 基础教程 12 ℃


为什么禁用o(n)复杂度的方法

禁用O(n) 复杂度方法-redis

1 redis是单线程的,其所有操作都是原子的,不会因并发产生数据异常,一个线程操作必须等待上一个线程操作完;

2 使用高耗时的Redis命令是很危险的,会占用唯一的一个线程的大量处理时间,导致所有的请求都被拖慢。(例如时间复杂度为O(N)的KEYS命令,严格禁止在生产环境中使用)

这样的命令,导致redis锁住,导致CPU飙升,引起所有请求锁住,等待超时后,所有的请求流量全部挤压到了数据库中,使数据库产生了雪崩效应,发生了数据库宕机事件。

o(n)复杂度的方法都有哪些

1 list LINDEX、LSET、LINSERT 这三个命令谨慎使用

2 Hash HGETALL、HKEYS/HVALS 谨慎使用

3 Set类型 SMEMBERS、SUNION/SUNIONSTORE、SINTER/SINTERSTORE、SDIFF/SDIFFSTORE

4 Sorted Set类型 ZRANGE/ZREVRANGE、ZRANGEBYSCORE/ZREVRANGEBYSCORE、ZREMRANGEBYRANK/ZREMRANGEBYSCORE

5 DEL、KEYS

Tags:

最近发表
标签列表