code: @ManagedOperation
      public void put(K key, V val, short repl_count, long timeout) {
          put(key, val, repl_count, timeout, false); // don't block (asynchronous put) by default
      }
docs: Places a key/value pair into one or several nodes in the cluster.
  @param key The key, needs to be serializable
  @param val The value, needs to be serializable
  @param repl_count Number of replicas. The total number of times a data item should be present in a cluster.
  Needs to be &gt; 0
  <ul>
  <li>-1: create key/val in all the nodes in the cluster
  <li>1: create key/val only in one node in the cluster, picked by computing the consistent hash of KEY
  <li>K &gt; 1: create key/val in those nodes in the cluster which match the consistent hashes created for KEY
  </ul>
  @param timeout Expiration time for key/value.
  <ul>
  <li>-1: don't cache at all in the L1 cache
  <li>0: cache forever, until removed or evicted because we need space for newer elements
  <li>&gt; 0: number of milliseconds to keep an idle element in the cache. An element is idle when not accessed.
  </ul>