set method

Future<void> set(
  1. String key,
  2. Map<String, dynamic> value,
  3. Duration ttl
)

Store a value under key with a given ttl.

The entry is written to both the memory and disk tiers.

Implementation

Future<void> set(
  String key,
  Map<String, dynamic> value,
  Duration ttl,
) async {
  final entry = _CacheEntry(
    value: value,
    expiresAt: DateTime.now().add(ttl),
  );

  // Memory tier.
  _evictIfNeeded();
  _memoryCache[key] = entry;

  // Disk tier.
  await _writeDiskEntry(key, entry);
  Logger.debug('Cache set: $key (ttl: ${ttl.inSeconds}s)');
}