疯狂的狮子li
2021-11-29 42295ef2ac0a5e78674cf24b62d6834138f0ffdc
ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java
@@ -88,7 +88,30 @@
     * @param value 缓存的值
     */
    public static <T> void setCacheObject(final String key, final T value) {
        client.getBucket(key).set(value);
        setCacheObject(key, value, false);
    }
    /**
     * 缓存基本的对象,保留当前对象 TTL 有效期
     *
     * @param key   缓存的键值
     * @param value 缓存的值
     * @param isSaveTtl 是否保留TTL有效期(例如: set之前ttl剩余90 set之后还是为90)
     * @since Redis 6.X 以上使用 setAndKeepTTL 兼容 5.X 方案
     */
    public static <T> void setCacheObject(final String key, final T value, final boolean isSaveTtl) {
        RBucket<Object> bucket = client.getBucket(key);
        if (isSaveTtl) {
            try {
                bucket.setAndKeepTTL(value);
            } catch (Exception e) {
                long timeToLive = bucket.remainTimeToLive();
                bucket.set(value);
                bucket.expire(timeToLive, TimeUnit.MILLISECONDS);
            }
        } else {
            bucket.set(value);
        }
    }
    /**