我们知道在DICT里可以存在如下几种状态的key
exist not expired expired non-existent
针对我对文档的理解,概括了如下几个操作所能针对的key状态
get --> exist not expired
get_stale --> expired
set,
safe_set --> exist not expired , expired , non-existent
add,
sfe_add --> expired , non-existent
replace --> exist not expired
delete --> exist not expired , expired
incr --> exist not expired
flush_all --> exist not expired
flush_expired --> expired
get_keys --> exist not expired
红色部分是我自己推断出来的该操作所能针对的key的状态,大家能帮我确认一下吗?
set操作会开始根据LRU算法剔除exist not expired状态的key,是在把expired状态的key都剔除完也没有空间来增加key了之后吧?
delete操作只是负责将key删除,并不会释放内存空间吧?
flush_expired会释放内存空间,既然内存分配是个很昂贵的操作,这里为什么还要释放内存空间呢,留着不是会更好吗?这里释放是有什么目的吗?
谢谢