packagecom.zl.utils;importorg.apache.tomcat.util.buf.StringUtils;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.stereotype.Component;importjava.util.Collection;importjava.util.List;importjava.util.Map;importjava.util.concurrent.TimeUnit;/*** Redis工具类,使用之前请确保RedisTemplate成功注入
*
*@authorye17186
*@version2019/2/22 10:48*/@Componentpublic classRedisUtils {privateRedisUtils() {
}
@AutowiredprivateRedisTemplate redisTemplate;/*** 设置有效时间
*
*@paramkey Redis键
*@paramtimeout 超时时间
*@returntrue=设置成功;false=设置失败*/
public boolean expire(final String key, final longtimeout) {returnexpire(key, timeout, TimeUnit.SECONDS);
}/*** 设置有效时间
*
*@paramkey Redis键
*@paramtimeout 超时时间
*@paramunit 时间单位
*@returntrue=设置成功;false=设置失败*/
public boolean expire(final String key, final long timeout, finalTimeUnit unit) {
Boolean ret=redisTemplate.expire(key, timeout, unit);return ret != null &&ret;
}/*** 删除单个key
*
*@paramkey 键
*@returntrue=删除成功;false=删除失败*/
public boolean del(finalString key) {
Boolean ret=redisTemplate.delete(key);return ret != null &&ret;
}/*** 删除多个key
*
*@paramkeys 键集合
*@return成功删除的个数*/
public long del(final Collectionkeys) {
Long ret=redisTemplate.delete(keys);return ret == null ? 0: ret;
}/*** 存入普通对象
*
*@paramkey Redis键
*@paramvalue 值*/
public void set(final String key, finalObject value) {
redisTemplate.opsForValue().set(key, value,1, TimeUnit.MINUTES);
}//存储普通对象操作
/*** 存入普通对象
*
*@paramkey 键
*@paramvalue 值
*@paramtimeout 有效期,单位秒*/
public void set(final String key, final Object value, final longtimeout) {
redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);
}/*** 获取普通对象
*
*@paramkey 键
*@return对象*/
public Object get(finalString key) {returnredisTemplate.opsForValue().get(key);
}//存储Hash操作
/*** 往Hash中存入数据
*
*@paramkey Redis键
*@paramhKey Hash键
*@paramvalue 值*/
public void hPut(final String key, final String hKey, finalObject value) {
redisTemplate.opsForHash().put(key, hKey, value);
}/*** 往Hash中存入多个数据
*
*@paramkey Redis键
*@paramvalues Hash键值对*/
public void hPutAll(final String key, final Mapvalues) {
redisTemplate.opsForHash().putAll(key, values);
}/*** 获取Hash中的数据
*
*@paramkey Redis键
*@paramhKey Hash键
*@returnHash中的对象*/
public Object hGet(final String key, finalString hKey) {returnredisTemplate.opsForHash().get(key, hKey);
}/*** 获取多个Hash中的数据
*
*@paramkey Redis键
*@paramhKeys Hash键集合
*@returnHash对象集合*/
public List hMultiGet(final String key, final CollectionhKeys) {returnredisTemplate.opsForHash().multiGet(key, hKeys);
}//存储Set相关操作
/*** 往Set中存入数据
*
*@paramkey Redis键
*@paramvalues 值
*@return存入的个数*/
public long sSet(final String key, finalObject... values) {
Long count=redisTemplate.opsForSet().add(key, values);return count == null ? 0: count;
}/*** 删除Set中的数据
*
*@paramkey Redis键
*@paramvalues 值
*@return移除的个数*/
public long sDel(final String key, finalObject... values) {
Long count=redisTemplate.opsForSet().remove(key, values);return count == null ? 0: count;
}//存储List相关操作
/*** 往List中存入数据
*
*@paramkey Redis键
*@paramvalue 数据
*@return存入的个数*/
public long lPush(final String key, finalObject value) {
Long count=redisTemplate.opsForList().rightPush(key, value);return count == null ? 0: count;
}/*** 往List中存入多个数据
*
*@paramkey Redis键
*@paramvalues 多个数据
*@return存入的个数*/
public long lPushAll(final String key, final Collectionvalues) {
Long count=redisTemplate.opsForList().rightPushAll(key, values);return count == null ? 0: count;
}/*** 往List中存入多个数据
*
*@paramkey Redis键
*@paramvalues 多个数据
*@return存入的个数*/
public long lPushAll(final String key, finalObject... values) {
Long count=redisTemplate.opsForList().rightPushAll(key, values);return count == null ? 0: count;
}/*** 从List中获取begin到end之间的元素
*
*@paramkey Redis键
*@paramstart 开始位置
*@paramend 结束位置(start=0,end=-1表示获取全部元素)
*@returnList对象*/
public List lGet(final String key, final int start, final intend) {returnredisTemplate.opsForList().range(key, start, end);
}
}