/** * 获取上传地址,每次调用缓存延长24小时 * * @param uuid * @return * @throws IOException */ public static String getUploadFilePath(String uuid) { Jedis jedis = getJedis(); Response<String> pathResponse; try { String key = CacheConstants.Redis_String_PhotoPath + uuid; // if(true)return jedis.get(key); Pipeline p = jedis.pipelined(); pathResponse = p.get(key); p.expire(key, CacheConstants.Redis_String_PhotoPath_Expire); p.sync(); p.close(); // List<Object> results = p.syncAndReturnAll(); String path = pathResponse.get(); if (path != null) return path; List list = nSimpleHibernateDao .createSqlQuery("select path from fp_photo_item where uuid='" + uuid + "'") .list(); if (list != null && list.size() > 0) { path = (String) list.get(0); setUploadFilePath(uuid, path); } else { // 防止暴力查数据库 setUploadFilePath(uuid, ""); } return path; } catch (Exception e) { //// e.printStackTrace(); throw e; } finally { if (jedis != null) jedis.close(); } }
public void pipelineWithoutTransaction() { Jedis jedis = pool.getResource(); try { Pipeline p = jedis.pipelined(); for (int i = 0; i < rowCount; i++) { String key = RandomStringUtils.randomAlphabetic(8); p.set(key, RandomStringUtils.randomNumeric(5)); p.expire(key, 5 * 60); } p.sync(); } catch (Exception e) { pool.returnResource(jedis); } }
@Override protected void updateStatesToRedis(RedisState redisState, Map<String, String> keyToValue) { Jedis jedis = null; try { jedis = redisState.getJedis(); Pipeline pipeline = jedis.pipelined(); for (Map.Entry<String, String> kvEntry : keyToValue.entrySet()) { String key = kvEntry.getKey(); String value = kvEntry.getValue(); switch (dataType) { case STRING: if (this.expireIntervalSec > 0) { pipeline.setex(key, expireIntervalSec, value); } else { pipeline.set(key, value); } break; case HASH: pipeline.hset(additionalKey, key, value); break; default: throw new IllegalArgumentException("Cannot process such data type: " + dataType); } } // send expire command for hash only once // it expires key itself entirely, so use it with caution if (dataType == RedisDataTypeDescription.RedisDataType.HASH && this.expireIntervalSec > 0) { pipeline.expire(additionalKey, expireIntervalSec); } pipeline.sync(); } finally { if (jedis != null) { redisState.returnJedis(jedis); } } }