public static void UseClientSideCaching(this RedisClient cli) { var context = new ClientSideCachingContext(cli); cli.Subscribe("__redis__:invalidate", (chan, msg) => { }); cli.Interceptors.Add(() => new MemoryCacheAop(context)); cli.Unavailable += (_, e) => { _dicStrings.Clear(); }; cli.Connected += (_, e) => { e.Client.ClientTracking(true, 100, null, false, false, false, false); }; }
public static void UseClientSideCaching(this RedisClient cli) { var sub = cli.Subscribe("__redis__:invalidate", (chan, msg) => { var keys = msg as object[]; foreach (var key in keys) { _dicStrings.TryRemove(string.Concat(key), out var old); } }) as IPubSubSubscriber; var context = new ClientSideCachingContext(cli, sub); cli.Interceptors.Add(() => new MemoryCacheAop()); cli.Unavailable += (_, e) => { _dicStrings.Clear(); }; cli.Connected += (_, e) => { e.Client.ClientTracking(true, context._sub.RedisSocket.ClientId, null, false, false, false, false); }; }
public MemoryCacheAop(ClientSideCachingContext cscc) { _cscc = cscc; }
public MemoryCacheAop(ClientSideCachingContext context) { _context = context; }