`
supben
  • 浏览: 331295 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

全局唯一自增id生成

 
阅读更多
public class Bbbb {
	public static void main(String[] args) {
		//42位时间戳+6位机器码+16位hash预留
		long time = System.currentTimeMillis();
		long serverid = 30; // serverid 不能超过64
		long userid = 123213123123l;
		long last16 = getLast(userid, 16);
		System.out.println(last16);
		
		long id = (time << 22) + (serverid << 16) + last16;
		System.out.println(id);
		
		long id_last16 = getLast(id, 16);
		System.out.println(id_last16);
	}
	
	public static long getLast(long l, int last){
		long i =  (l >> last) << last;
		return l-i;
	}
}

 

0
0
分享到:
评论

相关推荐

    cpp-idgen是一个可以生成全局唯一自增id的分布式的高可用服务

    cpp-idgen是一个专门为生成全局唯一且自增ID...总之,cpp-idgen作为一款分布式ID生成服务,为大型分布式系统提供了可靠的全局唯一自增ID解决方案,其设计理念和技术实现对于理解和构建类似的系统具有重要的参考价值。

    全局唯一ID生成

    在单体应用时代,我们可以通过数据库自增ID或时间戳+序列号等方式生成唯一ID。但在分布式环境下,这些方法往往无法满足需求,因为它们可能会导致ID冲突或性能瓶颈。 一种常见的分布式ID生成方案是雪花算法...

    java快速ID自增器

    总结来说,"Java快速ID自增器"是一种解决在Java应用中生成唯一自增ID的策略。它可以是基于Java内置的原子类、数据库序列、分布式ID生成算法,或者是结合数据库和Spring框架的高级应用场景。选择哪种方案取决于具体的...

    全局自增ID设计方案

    因此,如何设计一种高效的全局自增ID生成方案成为了一个重要的技术问题。 #### 方案调研与实践 **一、数据库自增ID方案** ##### Flicker方案解析 Flicker提出的解决方案是利用MySQL自身的auto_increment特性来...

    应用级自增ID的生成

    在实际应用中,自增ID生成器需要考虑性能、可用性和扩展性。例如,为了处理高并发请求,可能需要批量获取一组ID而不是单个ID,以减少数据库交互次数。同时,为了提高容错性,可能有备份策略或者故障转移机制。 总结...

    springboot分布式自增id_javaredis_源码

    标题中的“springboot分布式自增id_javaredis_源码”表明我们关注的是一个使用Spring Boot实现的分布式系统中的自增ID生成方案,其中利用了Java Redis客户端库。在分布式环境中,确保全局唯一且顺序递增的ID是常见的...

    donkeyid, php扩展,64位自增id生成器.zip

    通过查看`donkeyid-master`目录下的源文件,我们可以学习其设计思想,了解如何在PHP中实现高性能的自增ID生成,并可能根据自己的项目需求进行调整。 此外,使用`donkeyid`扩展可以简化开发流程,避免自行编写复杂的...

    生成数字的全局唯一Id.zip

    雪花算法(Snowflake Algorithm)是由Twitter开源的一种分布式ID生成方案。它的设计目标是在分布式环境中生成全局唯一的、递增的64位整数ID,主要由以下几个部分组成: 1. **时间戳**(41位):从2015年1月1日(UTC...

    一种简单的ID生成策略: Mysql表生成全局唯一ID的实现

    生成全局ID的方法很多, 这里记录下一种简单的方案: 利用mysql的自增id生成全局唯一ID. 1. 创建一张只需要两个字段的表: CREATE TABLE `guid` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `stub` char(1...

    Twitter的分布式自增ID雪花算法snowflake

    雪花算法是Twitter开源的一种分布式ID生成算法,它能够生成全局唯一、递增且无碰撞的64位整数ID。这个算法在分布式系统中非常适用,因为传统的序列号生成方式在分布式环境中往往难以解决冲突问题。下面我们将详细...

    Twitter的分布式自增ID算法snowflake (Java版)

    Snowflake算法作为Twitter开源的一种分布式ID生成方案,通过合理分配64位ID的不同部分,不仅实现了ID的全局唯一性,还保证了ID的有序性和高效率。这种算法的设计思路简洁明了,非常适合用于需要频繁生成全局唯一ID的...

    Mysql全局ID生成方法

    既然要sharding,那么不可避免的要讨论到sharding key问题,在有些业务系统中,必须保证sharding key全局唯一,比如存放商品的数据库等,那么如何生成全局唯一的ID呢,下文将从DBA的角度介绍几种常见的方案。...

    mysql雪花算法生成唯一整型ID主键的实现方法

    雪花算法是一种分布式ID生成策略,由Twitter开源,其设计目标是在分布式系统中生成具有全局唯一性、有序性和高并发性的ID。在MySQL中实现雪花算法,主要是通过自定义函数来模拟这个过程。 首先,我们需要创建一个名...

    分布式架构系统生成全局唯一序列号的一些思路对比分析

    在单机系统中,数据库的自增ID是常用的生成唯一序列号的方式。但在分布式环境下,多个数据库实例无法共享一个自增序列,可以通过数据库中间件(如MyCat)或者分布式锁来解决这个问题。这种方式简单易用,但可能会...

    分布式id服务-常见组件与中台化-如自增id,分段id,雪花算法等适用于分布式服务的使用场景

    对数据库进行分库分表是比较常见的,而分库后则需要有一个唯一ID来标识一条数据或消息,单个数据库的自增ID显然不能满足需求,此时也会需要一个能够生成全局唯一ID的系统。 【全局唯一】这个最简单,就是说不能出现...

    分布式系统中唯一ID的生成方法共3页.pdf.zip

    分布式系统中的唯一ID生成是构建大规模、高并发应用的关键技术之一。在分布式环境中,由于多台服务器和进程可能同时处理请求,确保每个实体或事件拥有全局唯一的标识符(ID)至关重要,这有助于数据的一致性、跟踪和...

    java自动生成32位16进制ID的3个架包.rar

    在Java开发中,生成唯一的标识符(ID)是常见的需求,特别是在分布式系统中。这个"java自动生成32位16进制ID的3个架包"提供了解决方案,包括了`apache-commons-id.jar`、`apache-commons-discovery.jar`和`commons-...

    mysql自增id超大问题的排查与解决

    3. **使用UUID或自定义序列**:考虑使用全局唯一标识符(如UUID)代替自增ID,或者创建一个自定义的序列生成器,避免ID的顺序问题。 4. **优化数据处理逻辑**:尽量减少不必要的删除和插入操作,优化业务逻辑,减少...

    官方Java端口的Sqids生成短唯一的id从数字.zip

    Sqids在日志追踪、消息队列、数据库自增ID、用户会话管理等多个场景下都能发挥重要作用。在Java项目中,可以轻松集成这个库,以生成高性能且易于存储和传输的唯一标识符。 8. **性能优化** 为了提高性能,Sqids的...

    Hibernate教程02_ID生成策略

    首先,ID生成策略是Hibernate为了保证每个实体对象在数据库中的唯一性而设计的一种机制。它定义了如何生成和分配给新创建的对象一个唯一的标识符(ID)。在Hibernate中,ID生成策略有多种类型,每种都有其特定的适用...

Global site tag (gtag.js) - Google Analytics