com.intters.util.redis.RedisUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of - Show documentation
Show all versions of - Show documentation
Rapid development tool class
The newest version!
package com.intters.util.redis;
import org.springframework.data.redis.core.RedisTemplate;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* Redis 工具类
*
* @author Ruison
* @date 2018/8/6.
*/
public class RedisUtil {
private static RedisTemplate redisTemplate;
private static RedisUtil REDIS_UTIL = null;
public RedisUtil() {
}
public RedisUtil(RedisTemplate redisTemplate) {
RedisUtil.redisTemplate = redisTemplate;
}
/**
* 初始化
*
* @param redisTemplate {@link RedisTemplate}
* @return {@link RedisUtil}
*/
public static RedisUtil init(RedisTemplate redisTemplate) {
if (REDIS_UTIL == null) {
REDIS_UTIL = new RedisUtil(redisTemplate);
}
return REDIS_UTIL;
}
// ------------------------------------------------------Key(键),简单的key-value操作
/**
* 实现命令:TTL key,以秒为单位,返回给定 key的剩余过期时间(TTL, time to live)。
*
* @param key 键
* @return 剩余过期时间
*/
public long ttl(String key) {
return redisTemplate.getExpire(key);
}
/**
* 实现命令:expire 设置过期时间,单位秒
*
* @param key 键
*/
public void expire(String key, long expire) {
redisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
/**
* 实现命令:expire 设置过期时间,单位秒
*
* @param key 键
* @param expire 超市时间
* @param timeUnit 时间单位
*/
public void expire(String key, long expire, TimeUnit timeUnit) {
redisTemplate.expire(key, expire, timeUnit);
}
/**
* 实现命令:INCR key,增加key一次
*
* @param key 键
* @return 值
*/
public long incr(String key, long delta) {
return redisTemplate.opsForValue().increment(key, delta);
}
/**
* 实现命令:KEYS pattern,查找所有符合给定模式 pattern的 key
*
* @param pattern 符合模式的键
*/
public Set keys(String pattern) {
return redisTemplate.keys(pattern);
}
/**
* 实现命令:DEL key,删除一个key
*
* @param key 键
*/
public void del(String key) {
redisTemplate.delete(key);
}
// ------------------------------------------------------String(字符串)
/**
* 实现命令:SET key value,设置一个key-value(将字符串值 value关联到 key)
*
* @param key 键
* @param value 值
*/
public void set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
/**
* 实现命令:SET key value EX seconds,设置key-value和超时时间(秒)
*
* @param key 键
* @param value 值
* @param expire(以秒为单位)
*/
public void set(String key, String value, long expire) {
this.set(key, value, expire, TimeUnit.SECONDS);
}
/**
* 实现命令:SET key value EX seconds,设置key-value和超时时间(秒)
*
* @param key 键
* @param value 值
* @param expire 超时时间
* @param timeUnit 时间单位
*/
public void set(String key, String value, long expire, TimeUnit timeUnit) {
redisTemplate.opsForValue().set(key, value, expire, timeUnit);
}
/**
* 实现命令:GET key,返回 key所关联的字符串值。
*
* @param key 键
* @return value 值
*/
public String get(String key) {
return (String) redisTemplate.opsForValue().get(key);
}
// ------------------------------------------------------Hash(哈希表)
/**
* 实现命令:HSET key field value,将哈希表 key中的域 field的值设为 value
*
* @param key 键
* @param field 域
* @param value 值
*/
public void hset(String key, String field, Object value) {
redisTemplate.opsForHash().put(key, field, value);
}
/**
* 实现命令:HGET key field,返回哈希表 key中给定域 field的值
*
* @param key 键
* @param field 域
* @return 域
*/
public String hget(String key, String field) {
return (String) redisTemplate.opsForHash().get(key, field);
}
/**
* 实现命令:HDEL key field [field ...],删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
*
* @param key 键
* @param fields 域
*/
public void hdel(String key, Object... fields) {
redisTemplate.opsForHash().delete(key, fields);
}
/**
* 实现命令:HGETALL key,返回哈希表 key中,所有的域和值。
*
* @param key 键
* @return 域和值
*/
public Map