应用场景很常见,就是我们要向redis中设置key-val属性的值。key肯定不是单纯的字符串,需要我们加上前缀,所以我们要搞一个工具类。

    1. public class RedisUtil {
    2. /**
    3. * 主数据系统标识
    4. */
    5. public static final String KEY_PREFIX = "SJ_PAY_PARAM";
    6. /**
    7. * 分割字符,默认[:],使用:可用于rdm分组查看
    8. */
    9. private static final String KEY_SPLIT_CHAR = ":";
    10. /**
    11. * redis的key键规则定义
    12. * @param module 模块名称
    13. * @param func 方法名称
    14. * @param args 参数..
    15. * @return key
    16. */
    17. public static String keyBuilder(String module, String func, String... args) {
    18. return keyBuilder(null, module, func, args);
    19. }
    20. /**
    21. * redis的key键规则定义
    22. * @param module 模块名称
    23. * @param func 方法名称
    24. * @param objStr 对象.toString()
    25. * @return key
    26. */
    27. public static String keyBuilder(String module, String func, String objStr) {
    28. return keyBuilder(null, module, func, new String[]{objStr});
    29. }
    30. /**
    31. * redis的key键规则定义
    32. * @param prefix 项目前缀
    33. * @param module 模块名称
    34. * @param func 方法名称
    35. * @param objStr 对象.toString()
    36. * @return key
    37. */
    38. public static String keyBuilder(String prefix, String module, String func, String objStr) {
    39. return keyBuilder(prefix, module, func, new String[]{objStr});
    40. }
    41. /**
    42. * redis的key键规则定义
    43. * @param prefix 项目前缀
    44. * @param module 模块名称
    45. * @param func 方法名称
    46. * @param args 参数..
    47. * @return key
    48. */
    49. public static String keyBuilder(String prefix, String module, String func, String... args) {
    50. // 项目前缀
    51. if (prefix == null) {
    52. prefix = KEY_PREFIX;
    53. }
    54. StringBuilder key = new StringBuilder(prefix);
    55. // KEY_SPLIT_CHAR 为分割字符
    56. key.append(KEY_SPLIT_CHAR).append(module).append(KEY_SPLIT_CHAR).append(func);
    57. for (String arg : args) {
    58. key.append(KEY_SPLIT_CHAR).append(arg);
    59. }
    60. return key.toString();
    61. }
    62. /**
    63. * redis的key键规则定义
    64. * @param redisEnum 枚举对象
    65. * @param objStr 对象.toString()
    66. * @return key
    67. */
    68. public static String keyBuilder(RedisEnum redisEnum, String objStr) {
    69. return keyBuilder(redisEnum.getKeyPrefix(), redisEnum.getModule(), redisEnum.getFunc(), objStr);
    70. }
    71. }