疯狂的狮子li
2021-11-01 c4e17ff8472fd9f8123e86b593b2968ad5936b15
ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java
@@ -26,6 +26,32 @@
    private static RedissonClient client = SpringUtils.getBean(RedissonClient.class);
    /**
     * 限流
     *
     * @param key          限流key
     * @param rateType     限流类型
     * @param rate         速率
     * @param rateInterval 速率间隔
     * @return -1 表示失败
     */
    public static long rateLimiter(String key, RateType rateType, int rate, int rateInterval) {
        RRateLimiter rateLimiter = client.getRateLimiter(key);
        rateLimiter.trySetRate(rateType, rate, rateInterval, RateIntervalUnit.SECONDS);
        if (rateLimiter.tryAcquire()) {
            return rateLimiter.availablePermits();
        } else {
            return -1L;
        }
    }
    /**
     * 获取实例id
     */
    public static String getClientId() {
        return client.getId();
    }
    /**
     * 发布通道消息
     *
     * @param channelKey 通道key
@@ -234,6 +260,18 @@
    }
    /**
     * 删除Hash中的数据
     *
     * @param key  Redis键
     * @param hKey Hash键
     * @return Hash中的对象
     */
    public static <T> T delCacheMapValue(final String key, final String hKey) {
        RMap<String, T> rMap = client.getMap(key);
        return rMap.remove(hKey);
    }
    /**
     * 获取多个Hash中的数据
     *
     * @param key   Redis键