diff --git a/continew-starter-cache/continew-starter-cache-redisson/src/main/java/top/continew/starter/cache/redisson/util/RedisUtils.java b/continew-starter-cache/continew-starter-cache-redisson/src/main/java/top/continew/starter/cache/redisson/util/RedisUtils.java index a3ab2479..28b4927a 100644 --- a/continew-starter-cache/continew-starter-cache-redisson/src/main/java/top/continew/starter/cache/redisson/util/RedisUtils.java +++ b/continew-starter-cache/continew-starter-cache-redisson/src/main/java/top/continew/starter/cache/redisson/util/RedisUtils.java @@ -25,6 +25,7 @@ import top.continew.starter.core.constant.StringConstants; import java.time.Duration; import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -534,4 +535,68 @@ public class RedisUtils { public static String formatKey(String... subKeys) { return String.join(StringConstants.COLON, ArrayUtil.removeBlank(subKeys)); } + + /** + * 设置 Hash 中指定字段的值 + * + * @param key Hash 键 + * @param field 字段 + * @param value 值 + * @since 2.13.4 + */ + public static void hSet(String key, String field, T value) { + RMap map = CLIENT.getMap(key); + map.put(field, value); + } + + /** + * 获取 Hash 中指定字段的值 + * + * @param key Hash 键 + * @param field 字段 + * @return 值 + * @since 2.13.4 + */ + public static T hGet(String key, String field) { + RMap map = CLIENT.getMap(key); + return map.get(field); + } + + /** + * 获取整个 Hash 的所有字段值 + * + * @param key Hash 键 + * @return Map + * @since 2.13.4 + */ + public static Map hGetAll(String key) { + RMap map = CLIENT.getMap(key); + return map.readAllMap(); + } + + /** + * 判断 Hash 中是否存在指定字段 + * + * @param key Hash 键 + * @param field 字段 + * @return true:存在;false:不存在 + * @since 2.13.4 + */ + public static boolean hExists(String key, String field) { + RMap map = CLIENT.getMap(key); + return map.containsKey(field); + } + + /** + * 删除 Hash 中指定字段 + * + * @param key Hash 键 + * @param fields 字段数组 + * @return 删除成功的字段数量 + * @since 2.13.4 + */ + public static long hDel(String key, String... fields) { + RMap map = CLIENT.getMap(key); + return map.fastRemove(fields); + } }