PooledRedisClientManager no libera conexiones

Estoy almacenando listas de datos json en redis y accediendo a ellos usando el cliente c # de ServiceStack. Básicamente estoy gestionando mis propias claves externas, donde almaceno unzrange de identificadores y uso una interfaz interna a mi aplicación para extraer los identificadores de lazrange y luego obtener los objetos json subyacentes de Redis y empaquetarlos como una lista para regresar a otras partes de mi aplicación.

Estoy usando elPooledRedisClientManager como anticipo que Redis se alojará en un servidor diferente del servidor que ejecuta el código.

Estoy haciendo todo mi trabajo de desarrollo localmente en Windows 8, usando el servidor Redis de MSOpenTech. Actualmente mi mayor desafío es que las conexiones de los clientes no se están cerrando.

Mi redis persister está siendo inyectado con una instancia deIRedisClientManager (IoC es CastleWindsor). Este código se ejecuta en el contexto de un rol de trabajador azul.

Así es como estoy recuperando elementos de un rango:

public class MyRedisPersister<T> : IResourcePersister<T>
{ 
    IRedisClientManager _mgr;
    public MyRedisPersister(IRedisClientManager mgr)
    {
        _mgr = mgr;
    }

    public IResourceList<T> Get<T>(string key, int offset, int count) where T
    {
        using (var redis = _clientManager.GetClient())
        {
            var itemKeys = redis.GetRangeFromSortedSet(key, offset, offset + count - 1).ToList();
            var totalItems = redis.GetSortedSetCount(key);

            if (itemKeys.Count == 0)
            {
                return new ResourceList<T>
                    {
                        Items = new List<T>(),
                        Offset = 0,
                        PageSize = 0,
                        TotalItems = 0,
                        TotalPages = 0
                    };
            }
            else
            {
                return new ResourceList<T>
                    {
                        Items = itemKeys.Select(k => redis.Get<T>(k)).ToList(),
                        Offset = offset,
                        PageSize = count,
                        TotalItems = totalItems,
                        TotalPages = (int) Math.Ceiling((float) totalItems/count)
                    };
            }
        }
    }
}

Este es el código que utilizo para registrar elIRedisClientManager

var mgr = new PooledRedisClientManager(100, 10, "localhost:6379");
container.Register(Component.For<IRedisClientsManager>().Instance(mgr).LifeStyle.Singleton);

Cualquier ayuda sería muy apreciada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta