Redis 避坑注意

# Redis 避坑注意

# SET 命令过期时间擦除

set命令可以设置 key-value,还可以在设置时给key-value设置过期时间,如果开始设置时,设置 key-value,后面更新key 对应的value时,如果没有加上过期时间,那这个 key 原本设置的过期时间将会被擦除,变成永不过期的 key 了,所以我们在Redis设置 key-value 及更新 key-value 要考虑一下,是不是要设置过期时间。

# DEL 命令阻塞 Redis

想删除Redis 里的数据,我们一般使用DEL 命令,但是Redis是一个单线程的程序,在删除大 key 的过程中,key 中数据越多需要的时间会越久,可能会导致Redis 实例阻塞。Redis 官方文档在介绍 DEL 命令里描述,key 是 String 类型,DEL 时间复杂度是 O(1),key 是 List/Hash/Set/ZSet 类型,DEL 时间复杂度是 O(M),M 为元素数量,在删除非 String 类型的 key,这个 key 的元素越多,那么在执行 DEL 时耗时就越久。所以当我们删除一个大 key 时一定不能无脑删除。