美文网首页
Redis删除大Key

Redis删除大Key

作者: Alen_ab56 | 来源:发表于2022-09-19 19:44 被阅读0次

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类型不会做异步删除。

相关文章

网友评论

      本文标题:Redis删除大Key

      本文链接:https://www.haomeiwen.com/subject/dnuvortx.html