internal NotificationListener(IConnectionMultiplexer connection) { _subscriber = connection.GetSubscriber(); //Listen for standard redis keyspace events _subscriber.Subscribe(_keyspace + "*", (channel, value) => { if (Paused) { return; } var key = ((string)channel).Replace(_keyspace, ""); foreach (var dbData in _databases) { HandleKeyspaceEvent(dbData, key, value); } }); //Listen for advanced keyspace events _subscriber.Subscribe(_keyspaceDetail + "*", (channel, value) => { if (Paused) { return; } var machine = ((string)value).Split(':').First(); //Only listen to events caused by other redis clients if (machine == ProcessId.GetCurrent()) { return; } var key = ((string)channel).Replace(_keyspaceDetail, ""); var eventType = ((string)value).Substring(machine.Length + 1); foreach (var dbData in _databases) { HandleKeyspaceDetailEvent(dbData, key, machine, eventType); } }); }