目录
Lazy Free要解决的问题
Lazy Free的官方简介
首先,我们来看看官方给出的,关于这个新特性的简介:
* Lazy freeing of keys. Redis is now able to delete keys in the background in a different thread without blocking the server. The new `UNLINK` command is the same as `DEL` but working in a non blocking way. Similarly an `ASYNC` option was added to `FLUSHALL` and `FLUSHDB` in order to let the entire dataset or a single database to be freed asynchronously.
可以很轻易地抓到这段描述中的重点:blocking the server
这里就引出了一个值得讨论的问题:为什么删除key会导致Redis服务阻塞?
问题分析
首先,我们讨论Redis如何存储KV对。
这里直接把redisDb结构体的定义和《Redis设计与实现》中的贴出来,可以看到KV对直接存储在一个dict,即字典中。