com.biz.redis.utils.RedisMapUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of biz-all Show documentation
Show all versions of biz-all Show documentation
BizX 是一个灵活而高效的业务开发框架, 其中也有很多为业务开发所需要的工具类的提供。
The newest version!
package com.biz.redis.utils;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.HashOperations;
import java.util.Map;
/**
* Redis Map Utils
* 提供对Redis哈希(Hash)数据结构的常用操作方法,包括获取和设置哈希值、删除哈希项、判断哈希项是否存在以及哈希值的递增和递减操作等。
*
* 该类依赖于{@link HashOperations}和{@link RedisCommonUtils}。
*
*
* 示例:
* RedisMapUtils redisMapUtils = new RedisMapUtils(hashOperations, redisCommonUtils);
* redisMapUtils.hset("key", "item", value);
*
*
* 注意:所有操作均假定键和项不为null,且对于可能出现的异常进行了日志记录。
*
* @see HashOperations
* @see RedisCommonUtils
* @see Redis Hash Commands
* @author francis
* @version 1.4.11
* @since 1.0.1
*/
@Slf4j
@RequiredArgsConstructor
public class RedisMapUtils {
private final HashOperations hashOperations;
private final RedisCommonUtils redisCommonUtils;
/**
* 获取哈希表中的某个值。
*
* @param key 哈希表的键,不能为空
* @param item 哈希表项的键,不能为空
* @return 哈希表中的值
* @see HashOperations#get(Object, Object)
*/
public Object hget(@NonNull String key, @NonNull String item) {
return hashOperations.get(key, item);
}
/**
* 获取哈希表中所有的键值对。
*
* @param key 哈希表的键,不能为空
* @return 哈希表中所有的键值对
* @see HashOperations#entries(Object)
*/
public Map hmget(@NonNull String key) {
return hashOperations.entries(key);
}
/**
* 向哈希表中添加多个键值对。
*
* @param key 哈希表的键,不能为空
* @param map 键值对映射,不能为空
* @return true表示成功,false表示失败
* @see HashOperations#putAll(Object, Map)
*/
public boolean hmset(@NonNull String key, @NonNull Map map) {
try {
hashOperations.putAll(key, map);
return true;
} catch (Exception e) {
log.error("向哈希表中添加多个键值对时发生异常 error {}", e.getMessage(), e);
}
return false;
}
/**
* 向哈希表中添加多个键值对,并设置过期时间。
*
* @param key 哈希表的键,不能为空
* @param map 键值对映射,不能为空
* @param time 过期时间(秒)
* @return true表示成功,false表示失败
* @see HashOperations#putAll(Object, Map)
*/
public boolean hmset(@NonNull String key, @NonNull Map map, long time) {
try {
hashOperations.putAll(key, map);
redisCommonUtils.setExpire(key, time);
return true;
} catch (Exception e) {
log.error("向哈希表中添加多个键值对并设置过期时间时发生异常 error {}", e.getMessage(), e);
}
return false;
}
/**
* 向哈希表中添加一个键值对,如果不存在将创建。
*
* @param key 哈希表的键,不能为空
* @param item 哈希表项的键,不能为空
* @param value 哈希表中的值,不能为空
* @return true表示成功,false表示失败
* @see HashOperations#put(Object, Object, Object)
*/
public boolean hset(@NonNull String key, @NonNull String item, @NonNull Object value) {
try {
hashOperations.put(key, item, value);
return true;
} catch (Exception e) {
log.error("向哈希表中添加一个键值对时发生异常 error {}", e.getMessage(), e);
}
return false;
}
/**
* 向哈希表中添加一个键值对,并设置过期时间。
*
* @param key 哈希表的键,不能为空
* @param item 哈希表项的键,不能为空
* @param value 哈希表中的值,不能为空
* @param time 过期时间(秒)
* @return true表示成功,false表示失败
* @see HashOperations#put(Object, Object, Object)
*/
public boolean hset(@NonNull String key, @NonNull String item, @NonNull Object value, long time) {
try {
hashOperations.put(key, item, value);
redisCommonUtils.setExpire(key, time);
return true;
} catch (Exception e) {
log.error("向哈希表中添加一个键值对并设置过期时间时发生异常 error {}", e.getMessage(), e);
}
return false;
}
/**
* 删除哈希表中的值。
*
* @param key 哈希表的键,不能为空
* @param item 哈希表项的键,可以为多个,不能为空
* @see HashOperations#delete(Object, Object...)
*/
public void delete(@NonNull String key, @NonNull Object... item) {
hashOperations.delete(key, item);
}
/**
* 判断哈希表中是否存在某个项的值。
*
* @param key 哈希表的键,不能为空
* @param item 哈希表项的键,不能为空
* @return true表示存在,false表示不存在
* @see HashOperations#hasKey(Object, Object)
*/
public boolean hasKey(@NonNull String key, @NonNull String item) {
return hashOperations.hasKey(key, item);
}
/**
* 哈希值递增操作,如果不存在,将创建一个新的哈希项。
*
* @param key 哈希表的键,不能为空
* @param item 哈希表项的键,不能为空
* @param by 增加的值,必须大于0
* @return 增加后的值
* @see HashOperations#increment(Object, Object, double)
*/
public double increment(@NonNull String key, @NonNull String item, double by) {
return hashOperations.increment(key, item, by);
}
/**
* 哈希值递减操作。
*
* @param key 哈希表的键,不能为空
* @param item 哈希表项的键,不能为空
* @param by 减少的值,必须小于0
* @return 减少后的值
* @see HashOperations#increment(Object, Object, double)
*/
public double decrement(@NonNull String key, @NonNull String item, double by) {
return hashOperations.increment(key, item, -by);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy