面试题:在分布式系统,你能想出来几种生成唯一ID的方案?( 七 )
用上面的算法测试一下 , 得到如下的结果:作为比较 , 前面3个是使用COMB算法得出的结果 , 最后12个字符串是时间序(统一毫秒生成的3个UUID) , 过段时间如果再次生成 , 则12个字符串会比图示的要大 。 后面3个是直接生成的GUID 。
如果想把时间序放在前面 , 可以生成后改变12个字符串的位置 , 也可以修改算法类的最后两个Array.Copy 。
4. Redis生成ID
当使用数据库来生成ID性能不够要求的时候 , 我们可以尝试使用Redis来生成ID 。 这主要依赖于Redis是单线程的 , 所以也可以用生成全局唯一的ID 。 可以用Redis的原子操作 INCR和INCRBY来实现 。
可以使用Redis集群来获取更高的吞吐量 。 假如一个集群中有5台Redis 。 可以初始化每台Redis的值分别是12345 , 然后步长都是5 。 各个Redis生成的ID为:
推荐阅读
- 梦幻西游|梦幻西游:客户端检测可能存在木马要怎么办,需要重装系统吗?
- 梦幻西游|梦幻西游:系统就是这么设定的,为什么抢了财神的摇钱箱会被勾魂
- edg战队|梦幻西游:玩家从建号到100级一直踩雷,是系统针对还是巧合?
- 明日方舟|明日方舟是否有必要实装扫荡系统 博士:退一步实装连战系统也好
- 苏菲的炼金工房2|《苏菲的炼金工房2》新角色和游戏系统情报
- 和平精英|“吃鸡”迎颠覆级更新,光子上线“迷雾系统”,S1玩家拍手称快!
- 流氓公司第4赛epic包|第五人格:据说官方已制作人脸识别系统,漏网之鱼要夜不能寐了
- 王者荣耀|王者荣耀专精系统收获差评,答疑回应平衡问题
- 地下城与勇士|DNF:竞拍系统二次更新!神话转换券常驻,奥兹玛3牛团复兴
- 人脸识别|接入人脸识别认证,网易游戏再次优化防沉迷系统