应用场景很常见,就是我们要向redis中设置key-val属性的值。key肯定不是单纯的字符串,需要我们加上前缀,所以我们要搞一个工具类。
public class RedisUtil {/*** 主数据系统标识*/public static final String KEY_PREFIX = "SJ_PAY_PARAM";/*** 分割字符,默认[:],使用:可用于rdm分组查看*/private static final String KEY_SPLIT_CHAR = ":";/*** redis的key键规则定义* @param module 模块名称* @param func 方法名称* @param args 参数..* @return key*/public static String keyBuilder(String module, String func, String... args) {return keyBuilder(null, module, func, args);}/*** redis的key键规则定义* @param module 模块名称* @param func 方法名称* @param objStr 对象.toString()* @return key*/public static String keyBuilder(String module, String func, String objStr) {return keyBuilder(null, module, func, new String[]{objStr});}/*** redis的key键规则定义* @param prefix 项目前缀* @param module 模块名称* @param func 方法名称* @param objStr 对象.toString()* @return key*/public static String keyBuilder(String prefix, String module, String func, String objStr) {return keyBuilder(prefix, module, func, new String[]{objStr});}/*** redis的key键规则定义* @param prefix 项目前缀* @param module 模块名称* @param func 方法名称* @param args 参数..* @return key*/public static String keyBuilder(String prefix, String module, String func, String... args) {// 项目前缀if (prefix == null) {prefix = KEY_PREFIX;}StringBuilder key = new StringBuilder(prefix);// KEY_SPLIT_CHAR 为分割字符key.append(KEY_SPLIT_CHAR).append(module).append(KEY_SPLIT_CHAR).append(func);for (String arg : args) {key.append(KEY_SPLIT_CHAR).append(arg);}return key.toString();}/*** redis的key键规则定义* @param redisEnum 枚举对象* @param objStr 对象.toString()* @return key*/public static String keyBuilder(RedisEnum redisEnum, String objStr) {return keyBuilder(redisEnum.getKeyPrefix(), redisEnum.getModule(), redisEnum.getFunc(), objStr);}}
