我正在设计一个使用 MongoDB 进行存储的应用程序。您可能知道 mongo 提供的 ObjectId 数据类型是 12 字节的十六进制。我想向我的用户展示一个对用户更友好的 ID。
我研究了几个选项,如 PHP 的 uniqid() 及其几个变体,但我不相信它们,因为随机性所带来的冲突(参见生日问题)。
对于这种操作,Redis 看起来对我很有吸引力(请参阅INCR)。这要求 Web 应用程序在每次需要创建新记录时调用 redis。我在 redis 中只需要大约 15-20 个计数器,它们占用的空间很小,因此复制永远不会成为问题。此外,应用程序可以使用套接字连接到它,以避免 tcp 开销。
我想错了吗?还有什么我应该考虑的吗?
谢谢,亚历克斯