get method

V? get(
  1. String key
)

获取缓存数据(从磁盘读取)

Implementation

V? get(String key) {
  if (!_keysIndex.contains(key)) return null;

  final json = CacheServiceCore.getMap(_itemKey(key));
  if (json == null) {
    // 索引存在但数据不存在,清理索引
    _keysIndex.remove(key);
    _saveIndex();
    return null;
  }

  try {
    final entry = _parseFromDisk(json);
    if (entry == null) {
      // 数据已过期
      _removeFromDisk(key);
      return null;
    }

    // 更新访问顺序(LRU)
    _updateAccessOrder(key);

    return entry.value;
  } catch (e) {
    // 反序列化失败
    _removeFromDisk(key);
    return null;
  }
}