remove method
如果密钥存在并且可以删除,则删除该项。条目无法删除正在编辑的活动项 如果条目被删除,则返回true。
Implementation
Future<bool> remove(String key) async {
return await _runtimeLock.synchronized(
() async {
_checkCacheNotClosed();
_validateKey(key);
if (!_lruEntries.containsKey(key)) return false;
_Entry entry = _lruEntries[key]!;
if (entry.currentEditor != null) return false;
for (int i = 0; i < valueCount; i++) {
File file = entry.getCleanFile(i);
if (await file.exists()) {
file.deleteSync();
}
_size -= entry.lengths[i];
entry.lengths[i] = 0;
}
_redundantOpCount++;
_journalFileWriter!.write(REMOVE + ' ' + key + '\n');
_lruEntries.remove(key);
if (_journalRebuildRequired) {
_cleanup();
}
return true;
},
);
}