我正在编写一些代码来从Java访问Redis,因此我需要创建很多字符串作为键。当然,这些键有一个模式,我将重复为相同的访问重新生成相同的键。
我正在考虑为生成的密钥实现缓存(基于DAO参数),但即使考虑到缓存的速度,我也想知道加速是否值得复杂。
密钥由一个与3-7字符串连接的UUID组成。在这种情况下,StringBuilder是否足够缓慢以保证缓存?
答案 0 :(得分:3)
只有分析可以肯定地告诉你,但如果你正在缓存这些,你必须有一些方法从缓存中获取它们,并且这可能至少与使用StringBuilder一样多。
在执行
之类的操作时,内部使用StringBuilderString result = strPart1 + strPart2;
答案 1 :(得分:1)
像其他人一样说,个人资料。如果修复了UUID,您可以加快速度,如下所示:
public class KeyGenerator {
private final StringBuilder sb;
private final int uidLen;
public KeyGenerator(String uid) {
sb = new StringBuilder(uid);
uidLen = uid.length();
}
public String getKey(String suffix) {
sb.setLength(uidLen);
sb.append(suffix);
return sb.toString();
}
}
这样可以节省构建新的StringBuilder并在每次需要密钥时附加uid。它也比缓存更简单。