/// <summary>
        /// Gets all connections that match the filter
        /// </summary>
        /// <param name="filter">The filter to apply on the data set</param>
        /// <returns></returns>
        public Task <IEnumerable <T> > GetConnectionsAsync(Expression <Func <T, bool> > filter)
        {
            using IRedisClient redisClient = RedisManager.GetClient();
            IRedisTypedClient <T> redisTypedClient = redisClient.As <T>();
            IRedisSet <T>         items            = redisTypedClient.Sets[Key];

            return(Task.FromResult(filter != null ? items.AsQueryable().Where(filter).AsEnumerable() : items.AsEnumerable()));
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public Task Clear()
        {
            using (IRedisClient redisClient = RedisManager.GetClient())
            {
                IRedisTypedClient <T> redisTypedClient = redisClient.As <T>();
                IRedisSet <T>         items            = redisTypedClient.Sets[Key];

                IEnumerable <T> connections = items.AsQueryable();
                foreach (T connection in connections)
                {
                    items.Remove(connection);
                }
            }

            return(Task.FromResult(0));
        }