@Component
public class RedisUtil {
@Autowired
private StringRedisTemplate stringRedisTemplate;
/**
* 获取指定key的值
*
* @param key
* @return
* @author albert.ding
*/
public String get(String key) {
return stringRedisTemplate.opsForValue().get(key);
}
/**
* 模糊匹配获取key
*
* @param key
* @return
* @author nan_wu
*/
public Set<String> getKeys(String key) {
return stringRedisTemplate.keys("*" + key + "*");
}
/**
* 设置指定key的值
*
* @param key
* @param value
* @author albert.ding
*/
public void set(String key, String value) {
stringRedisTemplate.opsForValue().set(key, value);
}
/**
* 将值value关联到key,并将key的过期时间设为seconds(以秒为单位)
*
* @param key
* @param value
* @param timeout (seconds)
* @author albert.ding
*/
public void setex(String key, String value, int timeout) {
stringRedisTemplate.opsForValue().set(key, value);
stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
/**
* 检查给定key是否存在
*
* @param key
* @return
* @author albert.ding
*/
public boolean exists(String key) {
return stringRedisTemplate.hasKey(key);
}
/**
* key存在时删除key
*
* @param key
* @author albert.ding
*/
public void del(String key) {
stringRedisTemplate.delete(key);
}
/**
* 获取存储在哈希表中指定字段的值
*
* @param key
* @param field
* @return
* @author albert.ding
*/
public String hget(String key, String field) {
return (String) stringRedisTemplate.opsForHash().get(key, field);
}
/**
* 将哈希表key中的字段field的值设为value
*
* @param key
* @param field
* @param value
* @author albert.ding
*/
public void hset(String key, String field, String value) {
stringRedisTemplate.opsForHash().put(key, field, value);
}
/**
* 获取在哈希表中指定key的所有字段和值
*
* @param key
* @return
* @author albert.ding
*/
public Map<String, String> hgetall(String key) {
return stringRedisTemplate.<String, String>opsForHash().entries(key);
}
/**
* 获取哈希表中所有值
*
* @param key
* @return
* @author albert.ding
*/
public List<String> hvals(String key) {
return stringRedisTemplate.<String, String>opsForHash().values(key);
}
/**
* 获取所有哈希表中的字段
*
* @param key
* @return
* @author albert.ding
*/
public Set<String> hkeys(String key) {
return stringRedisTemplate.<String, String>opsForHash().keys(key);
}
/**
* 获取哈希表中字段的数量
*
* @param key
* @return
* @author albert.ding
*/
public Long hlen(String key) {
return stringRedisTemplate.opsForHash().size(key);
}
/**
* 查看哈希表key中,指定的字段是否存在
*
* @param key
* @return
* @author albert.ding
*/
public boolean hexists(String key, String field) {
return stringRedisTemplate.opsForHash().hasKey(key, field);
}
/**
* 删除一个哈希表字段
*
* @param key
* @author albert.ding
*/
public void hdel(String key, String field) {
stringRedisTemplate.opsForHash().delete(key, field);
}
/**
* 向list右边添加元素值
*
* @param key
* @param val
* @author nan_wu
*/
public void lSet(String key, String val) {
stringRedisTemplate.opsForList().rightPush(key, val);
}
/**
* 获取list指定区间的值
*
* @param key
* @author nan_wu
*/
public List<String> lGet(String key, long start, long end) {
return stringRedisTemplate.opsForList().range(key, start, end);
}
/**
* 删除list中元素
*
* @param key
* @param l
* @param value
* @author nan_wu
*/
public void lRemove(String key, long l, Object value) {
stringRedisTemplate.opsForList().remove(key, l, value);
}
/**
* 向set集合添加元素
*
* @param key
* @param value
* @author nan_wu
*/
public void sAdd(String key, String... value) {
stringRedisTemplate.opsForSet().add(key, value);
}
/**
* 根据key获取set集合
*
* @param key
* @return
* @author nan_wu
*/
public Set<String> sGet(String key) {
return stringRedisTemplate.opsForSet().members(key);
}
/**
* 根据key查看set集合中是否存在指定数据
*
* @param key
* @param val
* @return
* @author nan_wu
*/
public Boolean sIsMember(String key, String val) {
return stringRedisTemplate.opsForSet().isMember(key, val);
}
/**
* 根据key删除set集合指定的value
*
* @param key
* @param val
* @author nan_wu
*/
public void sDel(String key, Object... val) {
stringRedisTemplate.opsForSet().remove(key, val);
}
/**
* 根据key获取set集合长度
*
* @param key
* @author nan_wu
*/
public Long sLen(String key) {
return stringRedisTemplate.opsForSet().size(key);
}
}