code: protected byte[] keyToBytes(String key) throws Exception {
  		int i = key.indexOf(':');
  
  		byte[] part1;
  		byte[] part2;
  		boolean compressed;
  
  		if (i == -1) {
  			part1 = key.getBytes(StandardCharsets.UTF_8);
  			part2 = new byte[0];
  			compressed = false;
  		} else {
  			part1 = key.substring(0, i).getBytes(StandardCharsets.UTF_8);
  			part2 = key.substring(i + 1).getBytes(StandardCharsets.UTF_8);
  			if (compressAbove > 0 && part2.length > compressAbove) {
  				part2 = compress(part2, compressionLevel);
  				compressed = true;
  			} else {
  				compressed = false;
  			}
  		}
  
  		// Write key packet
  		ByteArrayOutputStream out = new ByteArrayOutputStream(part1.length + part2.length + 16);
  		DataOutputStream dos = new DataOutputStream(out);
  		dos.writeInt(part1.length);
  		dos.write(part1);
  		dos.writeInt(part2.length);
  		dos.write(part2);
  		dos.writeBoolean(compressed);
  		dos.flush();
  
  		// Return key as partly compressed bytes
  		return out.toByteArray();
  	}
docs: --- CACHE SERIALIZER ---