public void StringSet(string key, string value, TimeSpan ttl) { PCacheValue val = new PCacheValue(value, ttl); L1.AddOrUpdate(key, val, (k, v) => val); // ToDo: Remove seldom used values from L1 // ToDo: Save to L2 }
public string StringGet(string key) { PCacheValue val = null; if (L1.TryGetValue(key, out val)) { if (val.Expires > DateTime.UtcNow) { return(val.Value); } else { L1.TryRemove(key, out val); // ToDo: Delete from L2 } } // ToDo: Look for it in L2 return(null); }