remove method

Future<bool> remove(
  1. String key
)

如果密钥存在并且可以删除,则删除该项。条目无法删除正在编辑的活动项 如果条目被删除,则返回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;
    },
  );
}