我正在寻找一个可以很好地生成长度为8的唯一ID的解决方案。数量并不大,每月只有1M。 我可以不生成 v4 版本的 uuid 并从中选择最后 8 个吗?由于流量约为每秒 5 个请求,因此可能没问题。欢迎对该方法提出任何评论并指出其他方法。我已经尝试过 Base 64 编码、短 uuid 等。寻找为什么最后 8 个 uuid 不适用于低 tps 的原因。
你可以使用这样的东西。我用它来https://cut.lu 我正在检查数据库的唯一性。如果存在,则获取新的。这虽然又快又脏,但很有效。
public static string GenerateSlug(int length)
{
string allowedCharsURL = "abcdefghijklmnopqrstuvwxyz1234567890";
//$-_.+!*'(),
//unwise in URI = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
//reserved in URI = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
string res = "";
Random rnd = new Random();
while (0 < length--)
res += allowedCharsURL[rnd.Next(allowedCharsURL.Length)];
return res;
}