Interface RedisService

All Known Implementing Classes:
RedisServiceImpl

public interface RedisService
Since:
2023-06-15
Author:
Catch
  • Method Details

    • set

      void set(String key, Object value)
      保存 value
      Parameters:
      key - 键
      value - 值
    • set

      void set(String key, Object value, long timeout, TimeUnit unit)
      保存 value 并设置过期时间
      Parameters:
      key - 键
      value - 值
      timeout - 超时时间
      unit - 时间单位
    • set

      void set(String key, Object value, Duration timeout)
      保存 value 并设置过期时间
      Parameters:
      key - 键
      value - 值
      timeout - 超时时间
    • setIfAbsent

      Boolean setIfAbsent(String key, Object value)
      如果 key 不存在则保存 value, 反之不保存
      Parameters:
      key - 键
      value - 值
      Returns:
      是否保存成功
    • setIfAbsent

      Boolean setIfAbsent(String key, Object value, long timeout, TimeUnit unit)
      如果 key 不存在则保存 value 并设置过期时间, 反之不保存
      Parameters:
      key - 键
      value - 值
      timeout - 超时时间
      unit - 时间单位
      Returns:
      是否保存成功
    • setIfAbsent

      Boolean setIfAbsent(String key, Object value, Duration timeout)
      如果 key 不存在则保存 value 并设置过期时间, 反之不保存
      Parameters:
      key - 键
      value - 值
      timeout - 超时时间
      Returns:
      是否保存成功
    • setIfPresent

      Boolean setIfPresent(String key, Object value)
      如果 key 存在则保存 value, 反之不保存
      Parameters:
      key - 键
      value - 值
      Returns:
      是否保存成功
    • setIfPresent

      Boolean setIfPresent(String key, Object value, long timeout, TimeUnit unit)
      如果 key 存在则保存 value 并设置过期时间, 反之不保存
      Parameters:
      key - 键
      value - 值
      timeout - 超时时间
      unit - 时间单位
      Returns:
      是否保存成功
    • setIfPresent

      Boolean setIfPresent(String key, Object value, Duration timeout)
      如果 key 存在则保存 value 并设置过期时间, 反之不保存
      Parameters:
      key - 键
      value - 值
      timeout - 超时时间
      Returns:
      是否保存成功
    • multiSet

      void multiSet(Map<String,?> map)
      批量设置 key-value ,使用 redis mset 命令
      Parameters:
      map - key-value
    • multiSetIfAbsent

      Boolean multiSetIfAbsent(Map<String,?> map)
      批量设置 key-value ,使用 redis mset 命令, 如果 key 不存在则保存 value, 反之不保存
      Parameters:
      map - key-value
    • get

      <T> T get(String key, Class<T> clazz)
      获取 value
      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      clazz - 类型
      Returns:
    • get

      <T> T get(String key, Class<?> wrapper, Class<?>... inners)
      获取泛型 value

      如:List<Object> list = redisService.get(key, List.class, Object.class)

      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      wrapper - 包装类
      inners - 内部类
      Returns:
    • getAndDelete

      <T> T getAndDelete(String key, Class<T> clazz)
      获取 value 并删除 key
      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      clazz - 类型
      Returns:
    • getAndDelete

      <T> T getAndDelete(String key, Class<?> wrapper, Class<?>... inners)
      获取泛型 value 并删除 key

      如:List<Object> list = redisService.getAndDelete(key, List.class, Object.class)

      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      wrapper - 包装类
      inners - 内部类
      Returns:
    • getAndExpire

      <T> T getAndExpire(String key, long timeout, TimeUnit unit, Class<T> clazz)
      获取 value 并设置过期时间
      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      timeout - 超时时间
      unit - 时间单位
      clazz - 类型
      Returns:
    • getAndExpire

      <T> T getAndExpire(String key, long timeout, TimeUnit unit, Class<?> wrapper, Class<?>... inners)
      获取泛型 value 并设置过期时间

      如:List<Object> list = redisService.getAndExpire(key, 1, TimeUnit.MINUTES, List.class, Object.class)

      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      timeout - 超时时间
      unit - 时间单位
      wrapper - 包装类
      inners - 内部类
      Returns:
    • getAndExpire

      <T> T getAndExpire(String key, Duration timeout, Class<T> clazz)
      获取 value 并设置过期时间
      Parameters:
      key - 键
      timeout - 超时时间
      clazz - 类型
      Returns:
    • getAndExpire

      <T> T getAndExpire(String key, Duration timeout, Class<?> wrapper, Class<?>... inners)
      获取泛型 value 并设置过期时间

      如:List<Object> list = redisService.getAndExpire(key, Duration.ofMinutes(1), List.class, Object.class)

      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      timeout - 超时时间
      wrapper - 包装类
      inners - 内部类
      Returns:
    • getAndPersist

      <T> T getAndPersist(String key, Class<T> clazz)
      获取 value 并持久化 key, 此操作会移除 key 的过期时间
      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      clazz - 类型
      Returns:
    • getAndPersist

      <T> T getAndPersist(String key, Class<?> wrapper, Class<?>... inners)
      获取泛型 value 并持久化 key, 此操作会移除 key 的过期时间

      如:List<Object> list = redisService.getAndPersist(key, List.class, Object.class)

      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      wrapper - 包装类
      inners - 内部类
      Returns:
    • getAndSet

      <T> T getAndSet(String key, Object value, Class<T> clazz)
      保存 value 并返回旧的 value
      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      value - 新值
      clazz - 类型
      Returns:
      旧值
    • getAndSet

      <T> T getAndSet(String key, Object value, Class<?> wrapper, Class<?>... inners)
      保存泛型 value 并返回旧的 value

      如:List<Object> list = redisService.getAndSet(key, value, List.class, Object.class)

      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      value - 新值
      wrapper - 包装类
      inners - 内部类
      Returns:
      旧值
    • multiGet

      <T> List<T> multiGet(Collection<String> keys, Class<T> clazz)
      批量获取 value, 按键的顺序排列,不存在则用 null 填充
      Parameters:
      keys - 键集合
      Returns:
      值集合
    • increment

      Long increment(String key)
      按步长为 1 递增 value
      Parameters:
      key - 键
      Returns:
      递增后的值
    • increment

      Long increment(String key, long delta)
      按步长为 delta 递增 value
      Parameters:
      key - 键
      Returns:
      递增后的值
    • increment

      Double increment(String key, double delta)
      按步长为 delta 递增 value
      Parameters:
      key - 键
      Returns:
      递增后的值
    • decrement

      Long decrement(String key)
      按步长为 delta 递减 value
      Parameters:
      key - 键
      Returns:
      递减后的值
    • decrement

      Long decrement(String key, long delta)
      按步长为 delta 递减 value
      Parameters:
      key - 键
      Returns:
      递减后的值
    • hasKey

      Boolean hasKey(String key)
      是否存在 key
      Parameters:
      key - 键
      Returns:
      是否存在
    • countExistingKeys

      Long countExistingKeys(Collection<String> keys)
      获取 key 集合中存在的 key 数量
      Parameters:
      keys - 键集合
      Returns:
      存在的 key 数量
    • delete

      Boolean delete(String key)
      删除 key
      Parameters:
      key - 键
      Returns:
      是否删除成功
    • delete

      Long delete(Collection<String> keys)
      批量删除 key
      Parameters:
      keys - 键集合
      Returns:
      删除的数量
    • unlink

      Boolean unlink(String key)
      从 key 空间中取消链接. 与 delete 不同,这里的内存回收是异步发生的
      Parameters:
      key - 键
      Returns:
      是否成功
    • unlink

      Long unlink(Collection<String> keys)
      批量从 key 空间中取消链接. 与 delete 不同,这里的内存回收是异步发生的
      Parameters:
      keys - 键集合
      Returns:
      取消链接的数量
    • keys

      Set<String> keys(String pattern)
      找到与模式匹配的所有键

      匹配示例:

      h?llo matches hello, hallo and hxllo

      h*llo matches hllo and heeeello

      h[ae]llo matches hello and hallo, but not hillo

      h[^e]llo matches hallo, hbllo, ... but not hello

      h[a-b]llo matches hallo and hbllo

      Parameters:
      pattern - 模式
      Returns:
      匹配的所有键
    • rename

      void rename(String oldKey, String newKey)
      将 key 重命名为 newKey
      Parameters:
      oldKey - 旧键
      newKey - 新键
    • renameIfAbsent

      Boolean renameIfAbsent(String oldKey, String newKey)
      当 newKey 不存在时,将 key 重命名为 newKey
      Parameters:
      oldKey - 旧键
      newKey - 新键
      Returns:
      是否重命名成功
    • expire

      Boolean expire(String key, long timeout, TimeUnit unit)
      设置 key 过期时间
      Parameters:
      key - 键
      timeout - 超时时间
      unit - 时间单位
      Returns:
      是否设置成功
    • expire

      Boolean expire(String key, Duration duration)
      设置 key 过期时间
      Parameters:
      key - 键
      duration - 超时时间
      Returns:
      是否设置成功
    • expireAt

      Boolean expireAt(String key, Date date)
      设置 key 在指定的时间过期
      Parameters:
      key - 键
      date - 指定的时间过期
      Returns:
      是否设置成功
    • expireAt

      Boolean expireAt(String key, Instant expireAt)
      设置 key 在指定的时间过期
      Parameters:
      key - 键
      expireAt - 指定的时间过期
      Returns:
      是否设置成功
    • persist

      Boolean persist(String key)
      设置 key 永不过期
      Parameters:
      key - 键
      Returns:
      是否设置成功
    • getExpire

      Long getExpire(String key)
      获取过期时间, 单位: 秒
      Parameters:
      key - 键
      Returns:
      过期时间, 单位: 秒
    • getExpire

      Long getExpire(String key, TimeUnit timeUnit)
      获取过期时间
      Parameters:
      key - 键
      timeUnit - 时间单位
      Returns:
      过期时间
    • hDelete

      Long hDelete(String key, String... hashKeys)
      Hash 操作, 批量删除 hashKey
      Parameters:
      key - 键
      hashKeys - hash 键集合
      Returns:
      删除的数量
    • hHasKey

      Boolean hHasKey(String key, String hashKey)
      Hash 操作, 判断 hash 键, 是否存在
      Parameters:
      key - 键
      hashKey - hash 键
      Returns:
      是否存在
    • hGet

      <T> T hGet(String key, String hashKey, Class<T> clazz)
      Hash 操作, 获取 value
      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      hashKey - hash 键
      clazz - 值类型
      Returns:
    • hMultiGet

      List<String> hMultiGet(String key, Collection<String> hashKeys)
      Hash 操作, 批量获取 value 返回的 value 顺序与 hashKeys 顺序一致, 不存在则用 null 填充, 存在则返回的是 JsonUtils.toJson() 的结果, 需要自行转换
      Parameters:
      key - 键
      hashKeys - hash 键集合
      Returns:
      值集合
    • hIncrement

      void hIncrement(String key, String hashKey)
      Hash 操作, value + 1
      Parameters:
      key - 键
      hashKey - hash 键
    • hIncrement

      void hIncrement(String key, String hashKey, long delta)
      Hash 操作, value + delta
      Parameters:
      key - 键
      hashKey - hash 键
      delta - 步长
    • hIncrement

      void hIncrement(String key, String hashKey, double delta)
      Hash 操作, value + delta
      Parameters:
      key - 键
      hashKey - hash 键
      delta - 步长
    • hDecrement

      void hDecrement(String key, String hashKey)
      Hash 操作, value - 1
      Parameters:
      key - 键
      hashKey - hash 键
    • hDecrement

      void hDecrement(String key, String hashKey, long delta)
      Hash 操作, value - delta
      Parameters:
      key - 键
      hashKey - hash 键
      delta - 步长
    • hDecrement

      void hDecrement(String key, String hashKey, double delta)
      Hash 操作, value - delta
      Parameters:
      key - 键
      hashKey - hash 键
      delta - 步长
    • hRandomKey

      String hRandomKey(String key)
      Hash 操作, 随机获取 hash 键
      Parameters:
      key - 键
      Returns:
      随机 hash 键
    • hRandomEntry

      Map.Entry<String,String> hRandomEntry(String key)
      Hash 操作, 随机获取 hash 键值对, hash 值返回的是 JsonUtils.toJson() 的结果, 需要自行转换
      Parameters:
      key - 键
      Returns:
      随机 hash 键值对
    • hRandomKeys

      List<String> hRandomKeys(String key, long count)
      Hash 操作, 随机获取指定数量的 hash 键
      Parameters:
      key - 键
      count - hash 键数量
      Returns:
      hash 键集合
    • hRandomEntries

      Map<String,String> hRandomEntries(String key, long count)
      Hash 操作, 随机获取指定数量的 hash 键值对, hash 值返回的是 JsonUtils.toJson() 的结果, 需要自行转换
      Parameters:
      key - 键
      count - hash 键值对数量
      Returns:
      hash 键值对集合
    • hKeys

      Set<String> hKeys(String key)
      Hash 操作, 获取 hash 键集合
      Parameters:
      key - 键
      Returns:
      hash 键集合
    • hLengthOfValue

      Long hLengthOfValue(String key, String hashKey)
      Hash 操作, 获取 value 长度
      Parameters:
      key - 键
      hashKey - hash 键
      Returns:
      value 长度
    • hSize

      Long hSize(String key)
      Hash 操作, 获取 hash 键数量
      Parameters:
      key - 键
      Returns:
      hash 键数量
    • hPutAll

      void hPutAll(String key, Map<String,Object> kv)
      Hash 操作, 批量保存 hash 键值对
      Parameters:
      key - 键
      kv - hash 键值对
    • hPut

      <T> void hPut(String key, String hashKey, Object value)
      Hash 操作, 保存 value
      Type Parameters:
      T - 泛型
      Parameters:
      key - 键
      hashKey - hash 键
      value - 值
    • hPutIfAbsent

      Boolean hPutIfAbsent(String key, String hashKey, Object value)
      Hash 操作, 仅当 hashKey 不存在时,才设置 hashKey 的值
      Parameters:
      key - 键
      hashKey - hash 键
      value - 值
      Returns:
      是否保存成功
    • hValues

      List<String> hValues(String key)
      Hash 操作, 获取所有 hash 值, hash 值返回的是 JsonUtils.toJson() 的结果, 需要自行转换
      Parameters:
      key - 键
      Returns:
      hash 值集合
    • hEntries

      Map<String,String> hEntries(String key)
      Hash 操作, 获取所有 hash 键值对 返回的 Map 的 value 是 JsonUtils.toJson() 的结果, 需要自行转换
      Parameters:
      key - 键
      Returns:
      hash 键值对