code: @Override
      protected Object internalGet(String key) {
          final String KEY = calcCacheKey(key);
          try {
              byte[] data = keyMode == KeyMode.HASH
                      ? getJedis().hget(SafeEncoder.encode(getName()), SafeEncoder.encode(KEY))
                      : getJedis().get(SafeEncoder.encode(KEY));
              if (data != null) {
                  CacheEntry ce = deserializeCacheEntry(data);
                  if (ce != null && ce.touch()) {
                      /*
                       * Since v0.6.2: use refreshTTL() instead of set() to save
                       * traffic between client & Redis server
                       */
                      // set(key, ce, ce.getExpireAfterWrite(),
                      // ce.getExpireAfterAccess());
                      refreshTTL(key, ce);
                  }
                  return ce;
              }
              return null;
          } catch (Exception e) {
              throw e instanceof CacheException ? (CacheException) e : new CacheException(e);
          }
      }
docs: {@inheritDoc}