在python中创建Id池

xyhw6mcr  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(145)

我需要为我的项目创建一个id池。如果有用户来了,我需要为他们分配一个特定事件的id。如果他们删除了那个事件,我需要删除那个id并把它放回我的id池。
假设一个叫Sam的用户创建了一个特定的事件,我给他分配了id 4343,如果他删除了那个事件,我需要删除那个id并把它放回我的id池中,我在MongoDB中创建了id池。
我的问题:考虑一下我的id池的范围从0-5000开始。我有4000个用户。我在Python中使用randint()生成一个id,并检查id池是否使用了该id。如果没有使用,我将为用户分配id。我在考虑以一种有效的方式生成这个id池,因为每次我生成一个id池时,我需要检查数据库列表。它是没有效率的长期运行。
如果我实现了这个方法,那么在4000个用户之后进行分配会有很长的延迟,因为每次randint()生成id并调用db列表进行检查时,都会花费更多的时间,因为如果给定的id(例如:3000)已经存在,则需要再次生成,并且如果存在,则需要再次生成另一个,等等。

pbpqsu0x

pbpqsu0x1#

创建一个包含0- 5000之间的值的列表。从列表中选择一个随机使用,将其分配给一个使用,然后将其从该列表中删除。

相关问题