redis RENAME 阻塞
redis RENAME
命令按文档说法是存在一个隐式 DEL
操作,通过查阅代码 db.c 可以得知至少一次 dbDelete,至多两次 dbDelete。
在命令上 redis 是提供了两种删除的操作,DEL
和 UNLINK
,分别对应了 dbSyncDelete 和 dbAsyncDelete。
dbDelete 是对 dbAsyncDelete/dbSyncDelete 的封装,并且由配置 lazyfree_lazy_expire
决定,两个函数区别 dictGenericDelete 是否在执行线程 free K/V pair 和 dict key 内存。