public static net.spy.memcached.MemcachedClient createSpyMemcachedClient(MemcacheConfig config) { try { ConnectionFactoryBuilder factoryBuilder = new ConnectionFactoryBuilder(); net.spy.memcached.transcoders.SerializingTranscoder transcoder = new net.spy.memcached.transcoders.SerializingTranscoder(); transcoder.setCompressionThreshold(config.getCompressionThreshold()); factoryBuilder.setProtocol(ConnectionFactoryBuilder.Protocol.BINARY); factoryBuilder.setTranscoder(transcoder); factoryBuilder.setOpTimeout(config.getOpTimeout()); factoryBuilder.setTimeoutExceptionThreshold(5); factoryBuilder.setLocatorType(ConnectionFactoryBuilder.Locator.CONSISTENT); factoryBuilder.setFailureMode(FailureMode.Redistribute); factoryBuilder.setUseNagleAlgorithm(false); factoryBuilder.setHashAlg(DefaultHashAlgorithm.KETAMA_HASH); return new net.spy.memcached.MemcachedClient( factoryBuilder.build(), AddrUtil.getAddresses(config.getServers())); } catch (Exception ex) { log.error("Failed to create SpyMemcachedClient", ex); } return null; }