org.springframework.data.redis.core.RedisTemplate.getExpire()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(4.5k)|赞(0)|评价(0)|浏览(160)

本文整理了Java中org.springframework.data.redis.core.RedisTemplate.getExpire方法的一些代码示例,展示了RedisTemplate.getExpire的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RedisTemplate.getExpire方法的具体详情如下:
包路径:org.springframework.data.redis.core.RedisTemplate
类名称:RedisTemplate
方法名:getExpire

RedisTemplate.getExpire介绍

暂无

代码示例

代码示例来源:origin: JayTange/Jantent

/**
 * 查询key的生命周期
 *
 * @param key
 * @param timeUnit
 * @return
 */
public long getKeyExpire(String key, TimeUnit timeUnit) {
  return redisTemplate.getExpire(key, timeUnit);
}

代码示例来源:origin: zhangyd-c/OneBlog

@Override
public long getExpire(String key) {
  return redisTemplate.getExpire(key);
}

代码示例来源:origin: JayTange/springbootRedis

/**
 * 查询key的生命周期
 *
 * @param key
 * @param timeUnit
 * @return
 */
public long getKeyExpire(String key, TimeUnit timeUnit) {
  return redisTemplate.getExpire(key, timeUnit);
}

代码示例来源:origin: tumao2/hdw-dubbo

@Override
public long ttl(String key) {
  return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}

代码示例来源:origin: gudaoxuri/dew

@Override
public long ttl(String key) {
  return redisTemplate.getExpire(key);
}

代码示例来源:origin: aillamsun/devX

@Override
public long ttl(String key) {
  return redisTemplate.getExpire(key);
}

代码示例来源:origin: youngMen1/JAVA-

public final Long ttl(final String key) {
  return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}

代码示例来源:origin: root-wyj/springboot_im

public long getTTL(K key) {
  return redisTemplate.getExpire(serilizableKey(key), TimeUnit.SECONDS);
}

代码示例来源:origin: huangjian888/jeeweb-mybatis-springboot

@Override
public final Long ttl(final String key) {
  return getRedisTemplate().getExpire(key, TimeUnit.SECONDS);
}

代码示例来源:origin: io.github.rcarlosdasilva/weixin

long ttl = RedisHandler.getRedisTemplate().getExpire(fullKey, TimeUnit.MILLISECONDS);
if (ttl == -1) {

代码示例来源:origin: xiaolyuh/layering-cache

/**
 * 硬刷新(执行被缓存的方法)
 *
 * @param redisCacheKey {@link RedisCacheKey}
 * @param valueLoader   数据加载器
 */
private <T> void forceRefresh(RedisCacheKey redisCacheKey, Callable<T> valueLoader) {
  // 尽量少的去开启线程,因为线程池是有限的
  ThreadTaskUtils.run(() -> {
    // 加一个分布式锁,只放一个请求去刷新缓存
    Lock redisLock = new Lock(redisTemplate, redisCacheKey.getKey() + "_lock");
    try {
      if (redisLock.lock()) {
        // 获取锁之后再判断一下过期时间,看是否需要加载数据
        Long ttl = redisTemplate.getExpire(redisCacheKey.getKey());
        if (null != ttl && ttl > 0 && TimeUnit.SECONDS.toMillis(ttl) <= preloadTime) {
          // 加载数据并放到缓存
          loaderAndPutValue(redisCacheKey, valueLoader, false);
        }
      }
    } catch (Exception e) {
      logger.error(e.getMessage(), e);
    } finally {
      redisLock.unlock();
    }
  });
}

代码示例来源:origin: com.github.xiaolyuh/layering-cache-core

/**
 * 刷新缓存数据
 */
private <T> void refreshCache(RedisCacheKey redisCacheKey, Callable<T> valueLoader, Object result) {
  Long ttl = redisTemplate.getExpire(redisCacheKey.getKey());
  Long preload = preloadTime;
  // 允许缓存NULL值,则自动刷新时间也要除以倍数
  boolean flag = isAllowNullValues() && (result instanceof NullValue || result == null);
  if (flag) {
    preload = preload / getMagnification();
  }
  if (null != ttl && ttl > 0 && TimeUnit.SECONDS.toMillis(ttl) <= preload) {
    // 判断是否需要强制刷新在开启刷新线程
    if (!getForceRefresh()) {
      logger.debug("redis缓存 key={} 软刷新缓存模式", redisCacheKey.getKey());
      softRefresh(redisCacheKey);
    } else {
      logger.debug("redis缓存 key={} 强刷新缓存模式", redisCacheKey.getKey());
      forceRefresh(redisCacheKey, valueLoader);
    }
  }
}

代码示例来源:origin: com.github.xiaolyuh/layering-cache-core

/**
 * 硬刷新(执行被缓存的方法)
 *
 * @param redisCacheKey {@link RedisCacheKey}
 * @param valueLoader   数据加载器
 */
private <T> void forceRefresh(RedisCacheKey redisCacheKey, Callable<T> valueLoader) {
  // 尽量少的去开启线程,因为线程池是有限的
  ThreadTaskUtils.run(() -> {
    // 加一个分布式锁,只放一个请求去刷新缓存
    Lock redisLock = new Lock(redisTemplate, redisCacheKey.getKey() + "_lock");
    try {
      if (redisLock.lock()) {
        // 获取锁之后再判断一下过期时间,看是否需要加载数据
        Long ttl = redisTemplate.getExpire(redisCacheKey.getKey());
        if (null != ttl && ttl > 0 && TimeUnit.SECONDS.toMillis(ttl) <= preloadTime) {
          // 加载数据并放到缓存
          loaderAndPutValue(redisCacheKey, valueLoader, false);
        }
      }
    } catch (Exception e) {
      logger.error(e.getMessage(), e);
    } finally {
      redisLock.unlock();
    }
  });
}

代码示例来源:origin: xiaolyuh/layering-cache

/**
 * 刷新缓存数据
 */
private <T> void refreshCache(RedisCacheKey redisCacheKey, Callable<T> valueLoader, Object result) {
  Long ttl = redisTemplate.getExpire(redisCacheKey.getKey());
  Long preload = preloadTime;
  // 允许缓存NULL值,则自动刷新时间也要除以倍数
  boolean flag = isAllowNullValues() && (result instanceof NullValue || result == null);
  if (flag) {
    preload = preload / getMagnification();
  }
  if (null != ttl && ttl > 0 && TimeUnit.SECONDS.toMillis(ttl) <= preload) {
    // 判断是否需要强制刷新在开启刷新线程
    if (!getForceRefresh()) {
      logger.debug("redis缓存 key={} 软刷新缓存模式", redisCacheKey.getKey());
      softRefresh(redisCacheKey);
    } else {
      logger.debug("redis缓存 key={} 强刷新缓存模式", redisCacheKey.getKey());
      forceRefresh(redisCacheKey, valueLoader);
    }
  }
}

相关文章

微信公众号

最新文章

更多