类 Redis


  • public class Redis
    extends Object

    简单Redis

    命令详细说明请参照 Redis 官方文档 进行查阅
    从以下版本开始:
    2018年3月27日
    作者:
    ylyue
    • 构造器概要

      构造器 
      构造器 说明
      Redis()  
    • 方法概要

      所有方法 静态方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      void del​(String key)
      实现命令:DEL key,删除一个key
      void expire​(String key, long timeout)
      实现命令:expire 设置过期时间,单位秒
      String get​(String key)
      实现命令:GET key,返回 key所关联的字符串值。
      <T> T get​(String key, Class<T> clazz)
      实现命令:GET key,返回 key 所关联的反序列化对象。
      Object getObject​(String key)
      实现命令:GET key,返回 key 所关联的对象。
      void hdel​(String key, Object... hashKeys)
      实现命令:HDEL key field [field ...]
      Object hget​(String key, String hashKey)
      实现命令:HGET key field,返回哈希表 key中给定域 field的值
      <T> T hget​(String key, String hashKey, Class<T> clazz)
      实现命令:HGET key field,返回哈希表 key中给定域 field的值
      Map<Object,​Object> hgetall​(String key)
      实现命令:HGETALL key,返回哈希表 key中,所有的域和值。
      void hset​(String key, String hashKey, Object value)
      实现命令:HSET key field value,将哈希表 key中的域 field的值设为 value
      long incr​(String key, long delta)
      实现命令:INCR key,将 key 中储存的数字值按增量递增。
      Set<String> keys​(String pattern)
      实现命令:KEYS pattern,查找所有符合给定模式 pattern的 key
      boolean lock​(String lockKey, Long lockTimeoutStamp)
      Redis分布式锁-加锁
      String lpop​(String key)
      实现命令:LPOP key,移除并返回列表 key的头元素。
      long lpush​(String key, String value)
      实现命令:LPUSH key value,将一个值 value插入到列表 key的表头
      long rpush​(String key, String value)
      实现命令:RPUSH key value,将一个值 value插入到列表 key的表尾(最右边)。
      static String separatorJoin​(String... elements)
      Redis分割Key拼接,参考 String.join(CharSequence, CharSequence...) 示例:
      void set​(String key, Object value)
      实现命令:SET key value,设置一个key-value(将可序列化对象 value 关联到 key)
      void set​(String key, Object value, long timeout)
      实现命令:SET key value EX seconds,设置key-value和超时时间(秒)
      void set​(String key, String value)
      实现命令:SET key value,设置一个key-value(将字符串对象 value 关联到 key)
      void set​(String key, String value, long timeout)
      实现命令:SET key value EX seconds,设置key-value和超时时间(秒)
      long ttl​(String key)
      实现命令:TTL key,以秒为单位,返回给定 key的剩余生存时间(TTL, time to live)。
      void unlock​(String lockKey, Long lockTimeoutStamp)
      Redis分布式锁-解锁
    • 构造器详细资料

      • Redis

        public Redis()
    • 方法详细资料

      • lock

        public boolean lock​(String lockKey,
                            Long lockTimeoutStamp)
        Redis分布式锁-加锁

        可用于实现接口幂等性、秒杀、库存加锁等业务场景需求

        注意:服务器集群间需进行时间同步,保障分布式锁的时序性

        参数:
        lockKey - 分布式锁的key(唯一性)
        lockTimeoutStamp - 分布式锁的超时时间戳(当前时间戳 + 超时毫秒,推荐使用:DateUtils.getTimestamp(int) 生成此变量)
        返回:
        是否成功拿到锁
      • unlock

        public void unlock​(String lockKey,
                           Long lockTimeoutStamp)
        Redis分布式锁-解锁
        参数:
        lockKey - 分布式锁的key(唯一性)
        lockTimeoutStamp - 加锁时使用的超时时间戳
      • ttl

        public long ttl​(String key)
        实现命令:TTL key,以秒为单位,返回给定 key的剩余生存时间(TTL, time to live)。
        参数:
        key - key
        返回:
        key的剩余生存时间(单位:秒)
      • expire

        public void expire​(String key,
                           long timeout)
        实现命令:expire 设置过期时间,单位秒
        参数:
        key - key
        timeout - 过期时间(单位:秒)
      • incr

        public long incr​(String key,
                         long delta)
        实现命令:INCR key,将 key 中储存的数字值按增量递增。
        参数:
        key - 不能为空
        delta - 增量数字
        返回:
        递增后的值
      • keys

        public Set<String> keys​(String pattern)
        实现命令:KEYS pattern,查找所有符合给定模式 pattern的 key
        参数:
        pattern - 不能为空
        返回:
        keys
      • del

        public void del​(String key)
        实现命令:DEL key,删除一个key
        参数:
        key - 不能为空
      • set

        public void set​(String key,
                        String value)
        实现命令:SET key value,设置一个key-value(将字符串对象 value 关联到 key)
        参数:
        key - 不能为空
        value - 字符串对象
      • set

        public void set​(String key,
                        Object value)
        实现命令:SET key value,设置一个key-value(将可序列化对象 value 关联到 key)
        参数:
        key - 不能为空
        value - 可序列化对象
      • set

        public void set​(String key,
                        Object value,
                        long timeout)
        实现命令:SET key value EX seconds,设置key-value和超时时间(秒)
        参数:
        key - 不能为空
        value - 可序列化对象
        timeout - 超时时间(单位:秒)
      • set

        public void set​(String key,
                        String value,
                        long timeout)
        实现命令:SET key value EX seconds,设置key-value和超时时间(秒)
        参数:
        key - 不能为空
        value - 字符串对象
        timeout - 超时时间(单位:秒)
      • get

        public String get​(String key)
        实现命令:GET key,返回 key所关联的字符串值。
        参数:
        key - 不能为空
        返回:
        value
      • getObject

        public Object getObject​(String key)
        实现命令:GET key,返回 key 所关联的对象。
        参数:
        key - 不能为空
        返回:
        对象
      • get

        public <T> T get​(String key,
                         Class<T> clazz)
        实现命令:GET key,返回 key 所关联的反序列化对象。
        类型参数:
        T - 反序列化对象类型
        参数:
        key - 不能为空
        clazz - 反序列化对象类
        返回:
        反序列化对象
      • hset

        public void hset​(String key,
                         String hashKey,
                         Object value)
        实现命令:HSET key field value,将哈希表 key中的域 field的值设为 value

        设置hashKey的值

        参数:
        key - 不能为空
        hashKey - 不能为空
        value - 设置的值
      • hget

        public Object hget​(String key,
                           String hashKey)
        实现命令:HGET key field,返回哈希表 key中给定域 field的值

        从hashKey获取值

        参数:
        key - 不能为空
        hashKey - 不能为空
        返回:
        hashKey的值
      • hget

        public <T> T hget​(String key,
                          String hashKey,
                          Class<T> clazz)
        实现命令:HGET key field,返回哈希表 key中给定域 field的值

        从hashKey获取值

        类型参数:
        T - 反序列化对象类型
        参数:
        key - 不能为空
        hashKey - 不能为空
        clazz - 反序列化对象类
        返回:
        hashKey的反序列化对象
      • hdel

        public void hdel​(String key,
                         Object... hashKeys)
        实现命令:HDEL key field [field ...],删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。

        删除给定的hashKeys

        参数:
        key - 不能为空
        hashKeys - 不能为空
      • hgetall

        public Map<Object,​Object> hgetall​(String key)
        实现命令:HGETALL key,返回哈希表 key中,所有的域和值。

        获取存储在键上的整个散列

        参数:
        key - 不能为空
        返回:
        map
      • lpush

        public long lpush​(String key,
                          String value)
        实现命令:LPUSH key value,将一个值 value插入到列表 key的表头
        参数:
        key - 不能为空
        value - 插入的值
        返回:
        执行 LPUSH命令后,列表的长度。
      • rpush

        public long rpush​(String key,
                          String value)
        实现命令:RPUSH key value,将一个值 value插入到列表 key的表尾(最右边)。
        参数:
        key - 不能为空
        value - 插入的值
        返回:
        执行 LPUSH命令后,列表的长度。
      • lpop

        public String lpop​(String key)
        实现命令:LPOP key,移除并返回列表 key的头元素。
        参数:
        key - 不能为空
        返回:
        列表key的头元素。
      • separatorJoin

        public static String separatorJoin​(String... elements)
        Redis分割Key拼接,参考 String.join(CharSequence, CharSequence...)
        示例:
         
             String message = Redis.join("Java", "is", "cool");
             // message returned is: "Java:is:cool"
         
         
        注意,如果元素为null,则添加 "null"
        参数:
        elements - 要连接在一起的元素。
        返回:
        由Redis Key分隔符分隔的元素组成的新字符串