为会话创建简单的id

时间:2014-04-29 20:09:17

标签: mongodb session

我有一个简单的WS,就像一个会话服务器,根本不复杂。 当我创建一个会话时,我从Mongo得到一个_id,我无法回复用户mongo使用的序列的原因。

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

536004fe2e1d59c95e9155a8
536004fe2e1d59c95e9155a9
536004fe2e1d59c95e9155aa
536004fe2e1d59c95e9155ab

正如你所看到的,可以问一个会议,并试图找出下一个......

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

    存储在db上的mongo _id的
  • sha1 / md5 / ....含义是保存+更新
  • 在_id
  • 上动态使用单向加密
  • 不要使用会话数据库......嘿!我别无选择!!
  • ......?

2 个答案:

答案 0 :(得分:1)

我使用Redis作为我们网站的会话数据,因为它提供了高读/写性能,并且密钥查找是会话数据唯一需要的。为什么使用MongoDB作为会话存储?

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

答案 1 :(得分:-1)

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

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

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