@Override public void setex(byte[] key, int seconds, byte[] value) { jedisCluster.setex(key, seconds, value); }
@Override public Boolean setEx(byte[] key, long seconds, byte[] value) { Assert.notNull(key, "Key must not be null!"); Assert.notNull(value, "Value must not be null!"); if (seconds > Integer.MAX_VALUE) { throw new IllegalArgumentException("Seconds have cannot exceed Integer.MAX_VALUE!"); } try { return Converters.stringToBoolean(connection.getCluster().setex(key, Long.valueOf(seconds).intValue(), value)); } catch (Exception ex) { throw convertJedisAccessException(ex); } }
/** * {@inheritDoc} */ @Override protected void updateStatesToRedis(Map<String, String> keyValues) { RedisDataTypeDescription description = this.options.dataTypeDescription; switch (description.getDataType()) { case STRING: for (Map.Entry<String, String> kvEntry : keyValues.entrySet()) { if (this.options.expireIntervalSec > 0) { jedisCluster.setex(kvEntry.getKey(), this.options.expireIntervalSec, kvEntry.getValue()); } else { jedisCluster.set(kvEntry.getKey(), kvEntry.getValue()); } } break; case HASH: jedisCluster.hmset(description.getAdditionalKey(), keyValues); if (this.options.expireIntervalSec > 0) { jedisCluster.expire(description.getAdditionalKey(), this.options.expireIntervalSec); } break; default: throw new IllegalArgumentException("Cannot process such data type: " + description.getDataType()); } }
case STRING: if (this.expireIntervalSec > 0) { jedisCluster.setex(key, expireIntervalSec, value); } else { jedisCluster.set(key, value);
@Override public void caching(String key, T cache) { byte[] cacheKey = key.getBytes(Consts.UTF_8); byte[] value = SerializationUtils.serialize(cache); if (cache.getExpires() > 0) { jedisCluster.setex(cacheKey, (int) (cache.getExpires() - CUTMS) / 1000, value); } else { jedisCluster.set(cacheKey, value); } jedisCluster.sadd(ALLKEY, key); }
/** * 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位) * 如果 key 已经存在, SETEX 命令将覆写旧值 * @param key * @param seconds * @param value * @return 设置成功时返回 OK ,当 seconds 参数不合法时,返回一个错误 */ public String setex(String key,int seconds,String value){ return jedisCluster.setex(key, seconds, value); } /**
@Override public String setex(byte[] bytes, int i, byte[] bytes1) { return cluster.setex(bytes, i, bytes1); }
public String setex(byte[] key, int seconds, byte[] value) { return jedisCluster.setex(key, seconds, value); }
public void setEx(byte[] key, byte[] value, int expire) { if (ArrayUtils.isEmpty(key) || ArrayUtils.isEmpty(value)) { return; } try { cluster.setex(key, expire, value); } catch (Exception e) { log.error("setEx error, key:{}", new String(key), e); } }
public void setEx(String key, String value, int expire) { if (StringUtils.isAnyBlank(key, value)) { return; } try { cluster.setex(key, expire, value); } catch (Exception e) { log.error("setEx error, key:{}, value:{}", key, value, e); } }
@Override public void set(String key, String sessionsKey, byte[] session, int timeout) throws UnsupportedEncodingException { jedisCluster.setex(key.getBytes(Protocol.CHARSET), timeout, session); jedisCluster.sadd(sessionsKey, key); }
@Override public Boolean setEx(byte[] key, long seconds, byte[] value) { Assert.notNull(key, "Key must not be null!"); Assert.notNull(value, "Value must not be null!"); if (seconds > Integer.MAX_VALUE) { throw new IllegalArgumentException("Seconds have cannot exceed Integer.MAX_VALUE!"); } try { return Converters.stringToBoolean(connection.getCluster().setex(key, Long.valueOf(seconds).intValue(), value)); } catch (Exception ex) { throw convertJedisAccessException(ex); } }
@Override public Boolean setEx(byte[] key, long seconds, byte[] value) { Assert.notNull(key, "Key must not be null!"); Assert.notNull(value, "Value must not be null!"); if (seconds > Integer.MAX_VALUE) { throw new IllegalArgumentException("Seconds have cannot exceed Integer.MAX_VALUE!"); } try { return Converters.stringToBoolean(connection.getCluster().setex(key, Long.valueOf(seconds).intValue(), value)); } catch (Exception ex) { throw convertJedisAccessException(ex); } }
@Override public <T> String setex(String key, int seconds, T value) { try { byte[] ds = getRedisBuffer().write(value); return jedisCluster.setex(SafeEncoder.encode(key), seconds, ds); } catch (IOException e) { logger.error(e.getMessage(), e); return null; } }
/** * 存放 key value 对到 redis,并将 key 的生存时间设为 seconds (以秒为单位)。 * 如果 key 已经存在, SETEX 命令将覆写旧值。 */ public String setex(Object key, int seconds, Object value) { return jedisCluster.setex(keyToBytes(key), seconds, valueToBytes(value)); }
@Override public String setex(String key, int seconds, String value) { return jedisCluster.setex(SafeEncoder.encode(key), seconds, SafeEncoder.encode(value)); }
@Override public boolean setByEX(final String key, final String value, final int seconds) { Assert.hasText(key); Assert.hasText(value); try { return isOK(cluster.setex(key, seconds, value)); } catch (final Throwable e) { throw new RedisClientException(e.getMessage(), e); } }
/** * 设值-对象-有效时间 */ public boolean set(Object key, Object value, int seconds) { boolean result = false; if (null == key || null == value) { return result; } if (cluster) { return jedisCluster.setex(serializeKey(key), seconds, serializeVal(value)).equals("OK"); } else { return jedisOperator.setex(serializeKey(key), seconds, serializeVal(value)).equals("OK"); } }
@Override public void caching(String key, T cache) { byte[] cacheKey = key.getBytes(Consts.UTF_8); byte[] value = SerializationUtils.serialize(cache); if (cache.getExpires() > 0) { jedisCluster.setex(cacheKey, (int) (cache.getExpires() - CUTMS) / 1000, value); } else { jedisCluster.set(cacheKey, value); } jedisCluster.sadd(ALLKEY, key); }
@Test public void set() throws UnsupportedEncodingException { byte[] session = "session".getBytes(); this.jedisPoolTemplate.set("key", SESSIONS_KEY, session, timeout); verify(this.jedisCluster, times(1)).setex("key".getBytes(Protocol.CHARSET), timeout, session); verify(this.jedisCluster, times(1)).sadd(SESSIONS_KEY, "key"); }