等ID都用了 , 再去数据库获?。缓蟾淖畲笾?
update id_generator set max_id = #{max_id+step}, version = version + 1 where version = # {version} and biz_type = XXX
- 优点:有比较成熟的方案,像百度Uidgenerator,美团Leaf
- 缺点:依赖于数据库实现
INCR
和 INCRBY
这样的自增原子命令 , 由于Redis单线程的特点,可以保证ID的唯一性和有序性这种实现方式,如果并发请求量上来后,就需要集群 , 不过集群后,又要和传统数据库一样,设置分段和步长
优缺点:
- 优点:Redis性能相对比较好,又可以保证唯一性和有序性
- 缺点:需要依赖Redis来实现,系统需要引进Redis组件

文章插图
- 第一部分:第一位占用1bit,始终是0 , 是一个符号位,不使用
- 第二部分:第2位开始的41位是时间戳 。41-bit位可表示241个数,每个数代表毫秒 , 那么雪花算法可用的时间年限是(241)/(1000
推荐阅读
- 【多服务场景化解决方案】AR虚拟技术助力智能家装
- three.js webgl3D光伏,3D太阳能能源,3D智慧光伏、光伏发电、清洁能源三维可视化解决方案——第十六课
- React动画实现方案之 Framer Motion,让你的页面“自己”动起来
- 19 基于.NetCore开发博客项目 StarBlog - Markdown渲染方案探索
- LabVantage仪器数据采集方案
- 从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
- docker swarm快速部署redis分布式集群
- Paxos分布式系统共识算法?我愿称其为点歌算法…
- C#实现生成Markdown文档目录树
- SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截