com.dagm.devtool.service.RedisStoreClient Maven / Gradle / Ivy
The newest version!
package com.dagm.devtool.service;
import com.dagm.devtool.cache.StoreKey;
/**
* 提供客户端所有的 redis 接口
*/
public interface RedisStoreClient {
/**
* 判断是否存在某key
*
* @param key redis key
* @return java.lang.Boolean
* @author Guimu
* @date 2020/1/9
*/
Boolean exists(StoreKey key);
/**
* 根据redis key 获取其value
*
* @param key redis key
* @return T 返回值
* @param 返回值类型
* @author Guimu
* @date 2020/1/9
*/
T get(StoreKey key);
/**
* 返回该key的类型
* @param key redis key
* @return java.lang.String
* @author Guimu
* @date 2020/1/9
*/
String type(StoreKey key);
/**
* 带有过期时间的incr操作
*
* @param amount 要增加的值
* @param key redis key
* @param expireInSeconds 初始化 key 的过期时间
* @param defaultValue 初始化 key 的默认值
* @return 增长后 key 的值,如果 Key 不存在,会创建这个 Key,且值为 defaultValue,然后再增加amount, 过期时间为 defaultExpire
*/
Long incrBy(StoreKey key, long amount, int expireInSeconds, long defaultValue);
/**
* 带有过期时间的incr操作
*
* @param amount 要增加的值
* @param key redis key
* @param expireInSeconds 初始化 key 的过期时间
* @return 增长后 key 的值,如果 Key 不存在,会创建这个 Key : 值=amount ,过期时间为 expireInSeconds
*/
Long incrBy(StoreKey key, long amount, int expireInSeconds);
/**
* 删除指定 Key
*
* @param key 要删除的 Key
* @return 如果 Key 存在且被删除,返回 true
如果 Key 不存在,返回 false 如:如果需要捕获超时异常,可以捕获 StoreTimeoutException
*/
public Boolean delete(StoreKey key);
/**
* 自增函数, 默认过期时间为category上配置的过期时间
*
* @param amount 要增加的值
* @param key redis key
* @return 增长后 key 的值,如果 Key 不存在,会创建这个 Key : 值=amount,返回值 amount,过期时间为category 的配置时间
*/
Long incrBy(StoreKey key, long amount);
/**
* @param amount 要增加的值
* @param key redis key
* @return 增长后 key 的值,如果 Key 不存在,会创建这个 Key,且值为0,然后再增加, 注意:该值无过期时间
*/
Double incrByFloat(StoreKey key, double amount);
/**
* @param expireInSeconds 超时时间 , 如果过期时间小于等于 0 ,该key直接过期
* @param key redis key
* @return 设置成功返回true,当key不存在或者不能为key设置生存时间时返回false
*/
Boolean expire(StoreKey key, int expireInSeconds);
/**
* @param key redis key
* @param unixTimeInSeconds Unix时间戳,代表key要过期的绝对时间
* @return 设置成功返回true,当key不存在或者不能为key设置生存时间时返回false
*/
Boolean expireAt(StoreKey key, long unixTimeInSeconds);
/**
* @param key redis key
* @param expireInMs 超时时间,单位——毫秒 , 如果过期时间小于等于 0 ,该key直接过期
* @return 设置成功返回true,当key不存在或者不能为key设置生存时间时返回false
*/
Boolean pexpire(StoreKey key, long expireInMs);
/**
* @param key redis key
* @return 以秒为单位,返回给定 key 的剩余生存时间 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。
*/
Long ttl(StoreKey key);
/**
* @param key redis key
* @return 以毫秒为单位,返回给定 key 的剩余生存时间 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。
*/
Long pttl(StoreKey key);
/**
* 移除给定 key 的生存时间,将这个key从 易失的(带生存时间key) 转换成 持久的(一个不带生存时间、永不过期的key)
*
* @param key redis key
* @return 当生存时间移除成功时,返回 true 如果 key 不存在或 key 没有设置生存时间,返回 false
*/
Boolean persist(StoreKey key);
/**
* 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。 如果 key 不存在, APPEND 就简单地将给定 key 设为
* value ,就像执行 SET key value 一样。 需要注意的一点: append 的是不加任何前缀的value (其他的API
* 客户端都默认添加一些前缀来做序列化以及压缩判断), 所以获取的时候必须用 getBytes 获取,如果要转成String ,使用 UTF8
*
* @param key redis key
* @param value redis value
* @return 追加 value 之后, key 中字符串的长度。
*/
Integer append(StoreKey key, String value);
/**
* 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 当 key 存在但不是字符串类型时,返回一个错误。
*
* 注意:此命令设置的value没有过期时间,如需过期,需单独设置过期时间
*
* @param key redis key
* @param value redis value
* @param t
* @return 返回给定 key 的旧值。当 key 不存在时,返回 null 。
*/
T getSet(StoreKey key, Object value);
/**
* 可设置过期时间(lua 实现的原子命令).
*
* @param key StoreKey
* @param value 设置的value
* @param t
* @param expireInSeconds 过期时间
* @return 旧值
*/
T getSet(StoreKey key, Object value, int expireInSeconds);
/**
* 设置 Key 对应的值为 Value,并设置过期时间expire(默认不需要这个,category自带过期时间), 如果 Key 不存在则添加,如果 Key 已经存在则覆盖
*
* @param key redis key
* @param value redis value
* @param expireInSeconds 单位 秒
*/
void set(StoreKey key, Object value, int expireInSeconds);
/**
* 添加 Key 对应的值为 Value,只有当 Key 不存在时才添加,如果 Key 已经存在,不改变现有的值
*
* @param key 要添加的 Key
* @param value 要添加的 Value
* @param expireInSeconds 过期时间
* @return 如果 Key 不存在且添加成功,返回 true 如果 Key 已经存在,返回 false 如:如果需要捕获超时异常,可以捕获 StoreTimeoutException
*/
Boolean setnx(StoreKey key, Object value, int expireInSeconds);
/**
* 添加 Key 对应的值为 Value,只有当 Key 存在时才添加,如果 Key 不存在,则不会进行操作。默认使用Category配置的过期时间
*
* @param key 要添加的 Key
* @param value 要添加的 Value
* @return 如果 Key 存在且添加成功,返回 true 如果操作失败,返回 false 如:如果需要捕获超时异常,可以捕获 StoreTimeoutException
*/
Boolean setxx(StoreKey key, Object value);
/**
* 添加 Key 对应的值为 Value,只有当 Key 存在时才添加,如果 Key 不存在,则不会进行操作
*
* @param key 要添加的 Key
* @param value 要添加的 Value
* @param expireInSeconds 过期时间
* @return 如果 Key 存在且添加成功,返回 true 如果操作失败,返回 false 如:如果需要捕获超时异常,可以捕获 StoreTimeoutException
*/
Boolean setxx(StoreKey key, Object value, int expireInSeconds);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy