Python-基于UUID的分片

2024-04-24 19:36:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在进行一个数据库分片,我必须在Python代码中决定数据库桶(应用程序切分)。我有3个不同的数据库桶和使用的用户ID,我必须切分它。用户id由uuid.uuid4(). 我怎样才能分享这些输入? 我尝试将第一个UUID转换为int,然后取模数。但是模数运算符失败了。在


Tags: 代码用户id数据库应用程序uuid运算符int
1条回答
网友
1楼 · 发布于 2024-04-24 19:36:44

模数运算符应该很好:

>>> int(uuid.uuid4()) % 3
2L
>>> int(uuid.uuid4()) % 3
1L
>>> int(uuid.uuid4()) % 3
2L
>>> int(uuid.uuid4()) % 3
1L
>>> int(uuid.uuid4()) % 3
1L
>>> int(uuid.uuid4()) % 3
0L
>>> int(uuid.uuid4()) % 3
1L

但为了保证设计的未来性,我建议您至少编写16个碎片,例如使用16个不同的主机名指向3个不同的后端主机:

^{pr2}$

这样,将来您就可以创建更多的后端服务器,在不更改代码的情况下将用户移动到那里。如果您的后端服务器的性能比其他服务器低,那么您甚至可以拥有分布不均的用户。在

相关问题 更多 >