Redis删除大Key

2022-09-19  本文已影响0人  Alen_ab56

1.  del;

删除指定的一批keys,如果删除中的某些key不存在,则直接忽略。

返回值

integer-reply: 被删除的keys的数量

2. UNLINK

该命令和DEL十分相似:删除指定的key(s),若key不存在则该key被跳过。但是,相比DEL会产生阻塞,该命令会在另一个线程中回收内存,因此它是非阻塞的。 这也是该命令名字的由来:仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。

返回值

integer-reply:unlink的keys的数量.

注意:unlink时会评估代价,如果代价不大 会立刻删除value,而key都是立刻就删除了的

https://blog.csdn.net/wojiuguowei/article/details/85096609

3. 设置TTL;

https://blog.csdn.net/weixin_33970449/article/details/92369718

总结:

不管是del还是unlink,key都是同步删除的。

使用unlink命令时,如果value分配的空间不大,使用异步删除反而会降低效率,所以redis会先评估一下free value的effort,根据effort的值来决定是否做异步删除。

使用unlink命令时,由于string类型的effort一直返回的是1,所以string类型不会做异步删除。

上一篇 下一篇

猜你喜欢

热点阅读