Mongodb 为会话创建简单id

Mongodb 为会话创建简单id,mongodb,session,Mongodb,Session,我得到了一个简单的WS,它就像一个会话服务器,一点也不复杂。 当我创建一个会话时,我从Mongo获得了一个_id,我无法将它返回给用户,因为Mongo使用了这个序列 链接创建时的ids序列示例: 536004fe2e1d59c95e9155a8 536004fe2e1d59c95e9155a9 536004fe2e1d59c95e9155aa 536004fe2e1d59c95e9155ab 正如你所见,你可以要求一个会议,并试图找出下一个 我的问题是:您使用什么样的技巧来创建随机但(几乎)唯

我得到了一个简单的WS,它就像一个会话服务器,一点也不复杂。 当我创建一个会话时,我从Mongo获得了一个_id,我无法将它返回给用户,因为Mongo使用了这个序列

链接创建时的ids序列示例:

536004fe2e1d59c95e9155a8
536004fe2e1d59c95e9155a9
536004fe2e1d59c95e9155aa
536004fe2e1d59c95e9155ab
正如你所见,你可以要求一个会议,并试图找出下一个

我的问题是:您使用什么样的技巧来创建随机但(几乎)唯一的id

  • sha1/md5/。。。存储在数据库上的mongo_id的。这意味着保存+更新
  • 在id上使用单向动态加密
  • 不要使用会话数据库。。。嘿我别无选择

我倾向于使用当前时间戳的MD5,它几乎是“唯一的”

您可以生成它并将其作为mongo文档上的任何其他字段发布,无需使用_id


请注意,我从未使用过mongo,我使用CouchBase和views。

我将Redis用于我们站点的会话数据,因为它提供了高读/写性能,而密钥查找是会话数据唯一需要的东西。为什么要将MongoDB用于会话存储


在任何情况下,您都可以访问MongoDB,它将使用它而不是自动生成一个。如果将_id设置为UUID(我用于密钥的内容)或其他随机值,则可以在不降低性能的情况下使用它。

因为有时,boss会做出决定:(感谢在保存之前分配的提示。我相信他正在寻找会话id应该具有的两个重要特性:随机性和唯一性。当前时间戳的MD5可能会产生唯一值,但它不是随机的。