在redis项目中,当项目越来越大时,键的数量也会增加。我更喜欢将所有按键放在一个中央位置,并在需要的地方使用它们。
我将所有密钥生成过程保存在一个名为RedisKeys的类中,并将其与静态方法一起使用。
以下是一个例子:
public static String USER_PREFIX = "usr";
public static String getUserKeyTemplate() {
return USER_PREFIX + ":@id:json";
}
public static String getUserKey(String id) {
return USER_PREFIX + ":" + id + ":json";
}
public static String getUserListKey() {
return USER_PREFIX;
}
public static String getUserNickSetKey() {
return USER_PREFIX + "set";
}
public static String getPasswordKey(String email) {
return USER_PREFIX + "mail:" + email + ":pass";
}
public static String getUserIdFromEmailKey(String email) {
return USER_PREFIX + "mail:" + email + ":uid";
}
public static String getUserKey(int userId) {
return getUserKey(userId + "");
}
public static String getUserNameKey(String userName) {
return USER_PREFIX + "name:" + userName + ":uid";
}
给定方法表示将用于用户操作的所有键。例如,如果我需要让Redis获取用户密码,我会执行以下操作:
String key = RedisKeys.getPasswordKey("test@test.com");
key变量的值为usr:mail:test@test.com:pass
,然后我就可以向Redis发送一个GET命令。
但是,你可以看到它看起来太难看了。类似Enum
的方法听起来不错,但键不是常量值。它们作为模板生成正确的密钥。
您提供了哪种方法来更好地管理动态密钥生成密钥?