code: public boolean set(String key, Object value, Integer expiration) throws Exception {
          String result = "";
          Jedis jedis = null;
          try {
              jedis = this.jedisPool.getResource();
  
              long begin = System.currentTimeMillis();
              if (expiration > 0) {
                  result = jedis.setex(SafeEncoder.encode(key), expiration, serialize(value));
              } else {
                  result = jedis.set(SafeEncoder.encode(key), serialize(value));
              }
              long end = System.currentTimeMillis();
              logger.info("set key:" + key + ", spends: " + (end - begin) + "ms");
              return "OK".equalsIgnoreCase(result);
          } catch (Exception e) {
              logger.error(e.getMessage(), e);
              this.jedisPool.returnBrokenResource(jedis);
              throw e;
          } finally {
              if (jedis != null) {
                  this.jedisPool.returnResource(jedis);
              }
          }
  
      }
docs: value set<br>
  The string can't be longer than 1073741824 bytes (1 GB).
  
  @param key
  @param value
  @param expiration
  
  @return false if redis did not execute the option