面试题:在分布式系统,你能想出来几种生成唯一ID的方案?( 八 )

A:16111621\nB:27121722\nC:38131823\nD:49141924\nE:510152025

这个 , 随便负载到哪个机确定好 , 未来很难做修改 。 但是3-5台服务器基本能够满足器上 , 都可以获得不同的ID 。 但是步长和初始值一定需要事先需要了 。 使用Redis集群也可以方式单点故障的问题 。 相关:搭建Redis集群

另外 , 比较适合使用Redis来生成每天从0开始的流水号 。 比如订单号=日期+当日自增长号 。 可以每天在Redis中生成一个Key , 使用INCR进行累加 。

优点:

  • 不依赖于数据库 , 灵活方便 , 且性能优于数据库 。

  • 数字ID天然排序 , 对分页或者需要排序的结果很有帮助 。

缺点:

推荐阅读