internal void SetItem <TValue>(CacheItem <TValue> cacheItem) { TimeSpan?expiry = null; if (cacheItem.ExpireIn.HasValue) { expiry = cacheItem.ExpireIn; } client.Database.StringSet(cacheItem.Id, convert.ToRedis(cacheItem), expiry, When.Always, CommandFlags.None); }
public void Publish(string cacheName, string key, CacheItemActionTypes action) { var message = new CacheItemNotification(sender, cacheName, key, action); var messageToSend = convert.ToRedis(message); GetSubClient(cacheName, null).Subscriber.Publish(cacheName, messageToSend, CommandFlags.None); }
public void Publish(string key, CacheItemActionTypes action) { var message = new CacheItemNotification(sender, cacheName, key, action); var messageToSend = convert.ToRedis(message); // publish via redis client.Subscriber.Publish(cacheName, messageToSend, CommandFlags.FireAndForget); }
internal void SetItem <TValue>(CacheItem <TValue> cacheItem) { TimeSpan?expiry = null; if (cacheItem.ExpireIn.HasValue) { expiry = cacheItem.ExpireIn; if (expiry.Value.TotalSeconds <= 0) { client.Database.KeyDelete(cacheItem.Id, CommandFlags.None); return; } } client.Database.StringSet(cacheItem.Id, convert.ToRedis(cacheItem), expiry, When.Always, CommandFlags.None); }
public bool TryPublish(string cacheName, string key, CacheItemActionTypes action) { try { var message = new CacheItemNotification(sender, cacheName, key, action); var messageToSend = convert.ToRedis(message); var redisClient = GetSubClient(cacheName, null, null); if (redisClient.IsConnected) { redisClient.Subscriber.Publish(cacheName, messageToSend, CommandFlags.None); return(true); } return(false); } catch (Exception ex) { log.Warn(ex, $"Failed to publish {action} for {cacheName}.{key}"); return(false); } }