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);
                }
            });
        }