Class MGL_RedisUtils

java.lang.Object
tech.mgl.core.tools.redis.MGL_RedisUtils

public class MGL_RedisUtils extends Object
redis 工具类
Version:
5.5.6
Author:
hotpot i@mgl.ee 1704013889883
  • Constructor Details

    • MGL_RedisUtils

      public MGL_RedisUtils()
  • Method Details

    • rateLimiter

      public static long rateLimiter(String key, org.redisson.api.RateType rateType, int rate, int rateInterval)
      限流
      Parameters:
      key - 限流key
      rateType - 限流类型
      rate - 速率
      rateInterval - 速率间隔
      Returns:
      -1 表示失败
    • getClient

      public static org.redisson.api.RedissonClient getClient()
      获取客户端实例
    • publish

      public static <T> void publish(String channelKey, T msg, Consumer<T> consumer)
      发布通道消息
      Parameters:
      channelKey - 通道key
      msg - 发送数据
      consumer - 自定义处理
    • publish

      public static <T> void publish(String channelKey, T msg)
    • subscribe

      public static <T> void subscribe(String channelKey, Class<T> clazz, Consumer<T> consumer)
      订阅通道接收消息
      Parameters:
      channelKey - 通道key
      clazz - 消息类型
      consumer - 自定义处理
    • setCacheObject

      public static <T> void setCacheObject(String key, T value)
      缓存基本的对象,Integer、String、实体类等
      Parameters:
      key - 缓存的键值
      value - 缓存的值
    • setCacheObject

      public static <T> void setCacheObject(String key, T value, boolean isSaveTtl)
      缓存基本的对象,保留当前对象 TTL 有效期
      Parameters:
      key - 缓存的键值
      value - 缓存的值
      isSaveTtl - 是否保留TTL有效期(例如: set之前ttl剩余90 set之后还是为90)
      Since:
      Redis 6.X 以上使用 setAndKeepTTL 兼容 5.X 方案
    • setCacheObject

      public static <T> void setCacheObject(String key, T value, Duration duration)
      缓存基本的对象,Integer、String、实体类等
      Parameters:
      key - 缓存的键值
      value - 缓存的值
      duration - 时间
    • setObjectIfAbsent

      public static <T> boolean setObjectIfAbsent(String key, T value, Duration duration)
      如果不存在则设置 并返回 true 如果存在则返回 false
      Parameters:
      key - 缓存的键值
      value - 缓存的值
      Returns:
      set成功或失败
    • setObjectIfExists

      public static <T> boolean setObjectIfExists(String key, T value, Duration duration)
      如果存在则设置 并返回 true 如果存在则返回 false
      Parameters:
      key - 缓存的键值
      value - 缓存的值
      Returns:
      set成功或失败
    • addObjectListener

      public static <T> void addObjectListener(String key, org.redisson.api.ObjectListener listener)
      注册对象监听器

      key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置

      Parameters:
      key - 缓存的键值
      listener - 监听器配置
    • expire

      public static boolean expire(String key, long timeout)
      设置有效时间
      Parameters:
      key - Redis键
      timeout - 超时时间
      Returns:
      true=设置成功;false=设置失败
    • expire

      public static boolean expire(String key, Duration duration)
      设置有效时间
      Parameters:
      key - Redis键
      duration - 超时时间
      Returns:
      true=设置成功;false=设置失败
    • getCacheObject

      public static <T> T getCacheObject(String key)
      获得缓存的基本对象。
      Parameters:
      key - 缓存键值
      Returns:
      缓存键值对应的数据
    • getTimeToLive

      public static <T> long getTimeToLive(String key)
      获得key剩余存活时间
      Parameters:
      key - 缓存键值
      Returns:
      剩余存活时间
    • deleteObject

      public static boolean deleteObject(String key)
      删除单个对象
      Parameters:
      key - 缓存的键值
    • deleteObject

      public static void deleteObject(Collection collection)
      删除集合对象
      Parameters:
      collection - 多个对象
    • isExistsObject

      public static boolean isExistsObject(String key)
      检查缓存对象是否存在
      Parameters:
      key - 缓存的键值
    • setCacheList

      public static <T> boolean setCacheList(String key, List<T> dataList)
      缓存List数据
      Parameters:
      key - 缓存的键值
      dataList - 待缓存的List数据
      Returns:
      缓存的对象
    • addCacheList

      public static <T> boolean addCacheList(String key, T data)
      追加缓存List数据
      Parameters:
      key - 缓存的键值
      data - 待缓存的数据
      Returns:
      缓存的对象
    • addListListener

      public static <T> void addListListener(String key, org.redisson.api.ObjectListener listener)
      注册List监听器

      key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置

      Parameters:
      key - 缓存的键值
      listener - 监听器配置
    • getCacheList

      public static <T> List<T> getCacheList(String key)
      获得缓存的list对象
      Parameters:
      key - 缓存的键值
      Returns:
      缓存键值对应的数据
    • getCacheListRange

      public static <T> List<T> getCacheListRange(String key, int form, int to)
      获得缓存的list对象(范围)
      Parameters:
      key - 缓存的键值
      form - 起始下标
      to - 截止下标
      Returns:
      缓存键值对应的数据
    • setCacheSet

      public static <T> boolean setCacheSet(String key, Set<T> dataSet)
      缓存Set
      Parameters:
      key - 缓存键值
      dataSet - 缓存的数据
      Returns:
      缓存数据的对象
    • addCacheSet

      public static <T> boolean addCacheSet(String key, T data)
      追加缓存Set数据
      Parameters:
      key - 缓存的键值
      data - 待缓存的数据
      Returns:
      缓存的对象
    • addSetListener

      public static <T> void addSetListener(String key, org.redisson.api.ObjectListener listener)
      注册Set监听器

      key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置

      Parameters:
      key - 缓存的键值
      listener - 监听器配置
    • getCacheSet

      public static <T> Set<T> getCacheSet(String key)
      获得缓存的set
      Parameters:
      key - 缓存的key
      Returns:
      set对象
    • setCacheMap

      public static <T> void setCacheMap(String key, Map<String,T> dataMap)
      缓存Map
      Parameters:
      key - 缓存的键值
      dataMap - 缓存的数据
    • addMapListener

      public static <T> void addMapListener(String key, org.redisson.api.ObjectListener listener)
      注册Map监听器

      key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置

      Parameters:
      key - 缓存的键值
      listener - 监听器配置
    • getCacheMap

      public static <T> Map<String,T> getCacheMap(String key)
      获得缓存的Map
      Parameters:
      key - 缓存的键值
      Returns:
      map对象
    • getCacheMapKeySet

      public static <T> Set<String> getCacheMapKeySet(String key)
      获得缓存Map的key列表
      Parameters:
      key - 缓存的键值
      Returns:
      key列表
    • setCacheMapValue

      public static <T> void setCacheMapValue(String key, String hKey, T value)
      往Hash中存入数据
      Parameters:
      key - Redis键
      hKey - Hash键
      value - 值
    • getCacheMapValue

      public static <T> T getCacheMapValue(String key, String hKey)
      获取Hash中的数据
      Parameters:
      key - Redis键
      hKey - Hash键
      Returns:
      Hash中的对象
    • delCacheMapValue

      public static <T> T delCacheMapValue(String key, String hKey)
      删除Hash中的数据
      Parameters:
      key - Redis键
      hKey - Hash键
      Returns:
      Hash中的对象
    • delMultiCacheMapValue

      public static <T> void delMultiCacheMapValue(String key, Set<String> hKeys)
      删除Hash中的数据
      Parameters:
      key - Redis键
      hKeys - Hash键
    • getMultiCacheMapValue

      public static <K, V> Map<K,V> getMultiCacheMapValue(String key, Set<K> hKeys)
      获取多个Hash中的数据
      Parameters:
      key - Redis键
      hKeys - Hash键集合
      Returns:
      Hash对象集合
    • setAtomicValue

      public static void setAtomicValue(String key, long value)
      设置原子值
      Parameters:
      key - Redis键
      value - 值
    • getAtomicValue

      public static long getAtomicValue(String key)
      获取原子值
      Parameters:
      key - Redis键
      Returns:
      当前值
    • incrAtomicValue

      public static long incrAtomicValue(String key)
      递增原子值
      Parameters:
      key - Redis键
      Returns:
      当前值
    • decrAtomicValue

      public static long decrAtomicValue(String key)
      递减原子值
      Parameters:
      key - Redis键
      Returns:
      当前值
    • keys

      public static Collection<String> keys(String pattern)
      获得缓存的基本对象列表
      Parameters:
      pattern - 字符串前缀
      Returns:
      对象列表
    • deleteKeys

      public static void deleteKeys(String pattern)
      删除缓存的基本对象列表
      Parameters:
      pattern - 字符串前缀
    • hasKey

      public static Boolean hasKey(String key)
      检查redis中是否存在key
      Parameters:
      key - 键