예제 #1
0
        public async Task <byte[]> GetAsync(string key)
        {
            Trace.WriteLine("New get request");

            ServerConfig server  = GetServerInternal(key);
            Request      request = GetRequest.New(key, server.Auth);

            var response = await _connectionPool.UseAsync(con => _getProcessor.ExecuteAsync(request, con, server));

            if (response.Exists)
            {
                return(response.Data.ToByteArray());
            }

            return(null);
        }
예제 #2
0
        public async Task <byte[]> GetAsync(string key)
        {
            Debug.WriteLine("New get request");
            GetRequest request = new GetRequest(key);

            IConnection connection = SelectServerAndCreateConnection(key);

            byte[] valueFromCache = await _getProcessor.ExecuteAsync(request, connection);

            byte[] notFoundBytes = SerializationUtils.Serialize(RequestStatusCode.NotFound);
            if (valueFromCache != null && valueFromCache.SequenceEqual(notFoundBytes))
            {
                return(null);
            }

            return(valueFromCache);
        }