python在分布式db上,用什么逻辑生成 数字unique id

2025-06-22 12:36:07
推荐回答(1个)
回答1:

  1. 我接触的最早的Unique ID,就是Oracle的自增ID。

  2. 特点是准连续的自增数字,为什么说是准连续?因为性能考虑,每个Client一次会领20个ID回去慢慢用,用完了再来拿。另一个Client过来,拿的就是另外20个ID了。

  3. 新浪微博里,Tim用Redis做相同的事情,Incr一下拿一批ID回去。如果有多个数据中心,那就拿高位的几个bit来区分。

  4. 只要舍得在总架构里增加额外Redis带来的复杂度,一个64bit的long就够表达了,而且不可能有重复ID。

  5. 批量是关键,否则每个ID都远程调用一次谁也吃不消。