1.数据库自增长序列或字段
缺点如图:
在分布式环境下会产生重复id,对查询某一数据造成麻烦。
2.UUID
例:d2b5a866-bbe2-4ba3-8910-b197d809795e
字符串太长 会消耗空间,耗费网络带宽
3.Redis生成ID
如图:
可以实现 利用redis原子操作 incr/incrby +步长(集群下有多少台机器)
4.Twitter的snowflake算法
mp默认使用此方法
5.利用zookeeper生成唯一ID
ZK注册中心,主要功能是分布式环境下配置文件的同步更新。
如果在竞争较大的情况下,需要考虑使用分布式锁。
memcached,redis和zookeeper都可实现分布式锁。
6.mycat
本地文件生成,UUID
缺点:
- 在mycat重启后,配置文件中sequence会恢复到初始值,造成下次操作序列重复
优点:
- 本地加载,读取速度较快
PS:每天坚持撸代码,总有一天会秃的