精华内容
下载资源
问答
  • uuid:(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码...

    uuid:(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得)

    select LOWER(rawtohex(sys_guid())) from dual;
    
    展开全文
  • java生成不重复的字符串 使用场景 一个很小的知识知识点吧。数据库中的主键标识要求唯一不重复,二开发过程中可能因为主键标识会作为前端的一个节点标识也要求不能重复。这个时候从不同的表中拿出来的主键标识很大...

    java生成不重复的字符串

    使用场景

    一个很小的知识知识点吧。数据库中的主键标识要求唯一不重复,二开发过程中可能因为主键标识会作为前端的一个节点标识也要求不能重复。这个时候从不同的表中拿出来的主键标识很大可能就会相同。怎样才能让所有表中的主键标识都不一样呢?这里就用到了String id = UUID.randomUUID().toString()。 它可以生成32位随机的不同的字符串(百年内不会生成相同的字符串)。

    原理

    UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字

    UUID由以下几部分的组合:
    1、当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
    2、时钟序列。
    3、全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

    展开全文
  • UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的UUID 由以下几个部分组成:1)当前日期和时间2)时钟序列3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式...

    UUID(Universally Unique Identifier),通用唯一识别码。

    UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的

    UUID 由以下几个部分组成:

    1)当前日期和时间

    2)时钟序列

    3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

    生成 uuid:

    public function create_guid($namespace = '') {

    static $guid = '';

    $uid = uniqid("", true);

    $data = $namespace;

    $data .= $_SERVER['REQUEST_TIME'];

    $data .= $_SERVER['HTTP_USER_AGENT'];

    $data .= $_SERVER['LOCAL_ADDR'];

    $data .= $_SERVER['LOCAL_PORT'];

    $data .= $_SERVER['REMOTE_ADDR'];

    $data .= $_SERVER['REMOTE_PORT'];

    $hash = strtoupper(hash('md5', $uid . $guid . md5($data)));

    $guid = '{' .

    substr($hash, 0, 8) .

    '-' .

    substr($hash, 8, 4) .

    '-' .

    substr($hash, 12, 4) .

    '-' .

    substr($hash, 16, 4) .

    '-' .

    substr($hash, 20, 12) .

    '}';

    return $guid;

    }

    生成 logid:根据时序生成的 id

    public static function logid(){

    $arr = gettimeofday();

    $aa = ($arr['sec']*100000 + $arr['usec']/10) & 0x7FFFFFFF;

    $logId = ((($arr['sec']*100000 + $arr['usec']/10) & 0x7FFFFFFF) | 0x80000000);

    return $logId

    }

    snowflake:

    twitter在把存储系统从MySQL迁移到Cassandra的过程中由于Cassandra没有顺序ID生成机制,于是自己开发了一套全局唯一ID生成的服务:snowflake。其核心思想是:一个long型的ID,使用其中41bit作为毫秒数,10bit作为机器编号,12bit作为毫秒内序列号。

    总结

    算法

    优点

    缺点

    适用场景

    auto_increment

    数据库自己实现,使用方便

    存在单点问题,且有写入瓶颈

    业务体量较小,并发数小,绝对递增

    uuid

    本地生成时效性高

    需要独立部署和维护,string类型做索引查询效率低,极低概率出现重复

    高并发、趋势递增

    snowflake

    本地生成时效性高

    需要独立部署和维护

    高并发、趋势递增

    redis incr

    实现灵活、简单

    需要一次redis调用

    并发要求不高,趋势递增

    idalloc

    内部维护服务

    需要独立部署和运维

    高并发,趋势递增

    展开全文
  • UUID具有以下涵义: 经由一定的算法机器生成 为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间...UUID能人工指定的,除非你冒着UUID重复的风险。UUID的复杂性决定了“一般人“能直接从...

    UUID具有以下涵义:

    经由一定的算法机器生成
    为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。UUID的复杂特性在保证了其唯一性的同时,意味着只能由计算机生成。

    非人工指定,非人工识别
    UUID是不能人工指定的,除非你冒着UUID重复的风险。UUID的复杂性决定了“一般人“不能直接从一个UUID知道哪个对象和它关联。

    在特定的范围内重复的可能性极小
    UUID的生成规范定义的算法主要目的就是要保证其唯一性。但这个唯一性是有限的,只在特定的范围内才能得到保证,这和UUID的类型有关(参见UUID的版本)。

    UUID的版本

    UUID具有多个版本,每个版本的算法不同,应用范围也不同。
    首先是一个特例--Nil UUID--通常我们不会用到它,它是由全为0的数字组成,如下:
    00000000-0000-0000-0000-000000000000

    UUID Version 1:基于时间的UUID
    基于时间的UUID通过计算当前时间戳、随机数和机器MAC地址得到。由于在算法中使用了MAC地址,这个版本的UUID可以保证在全球范围的唯一性。但与此同时,使用MAC地址会带来安全性问题,这就是这个版本UUID受到批评的地方。如果应用只是在局域网中使用,也可以使用退化的算法,以IP地址来代替MAC地址--Java的UUID往往是这样实现的(当然也考虑了获取MAC的难度)。

    UUID Version 2:DCE安全的UUID
    DCE(Distributed Computing Environment)安全的UUID和基于时间的UUID算法相同,但会把时间戳的前4位置换为POSIX的UID或GID。这个版本的UUID在实际中较少用到。

    UUID Version 3:基于名字的UUID(MD5)
    基于名字的UUID通过计算名字和名字空间的MD5散列值得到。这个版本的UUID保证了:相同名字空间中不同名字生成的UUID的唯一性;不同名字空间中的UUID的唯一性;相同名字空间中相同名字的UUID重复生成是相同的。

    UUID Version 4:随机UUID
    根据随机数,或者伪随机数生成UUID。这种UUID产生重复的概率是可以计算出来的,但随机的东西就像是买彩票:你指望它发财是不可能的,但狗屎运通常会在不经意中到来。

    UUID Version 5:基于名字的UUID(SHA1)
    和版本3的UUID算法类似,只是散列值计算使用SHA1(Secure Hash Algorithm 1)算法。

    UUID的应用

    从UUID的不同版本可以看出,
    Version 1/2适合应用于分布式计算环境下,具有高度的唯一性;
    Version 3/5适合于一定范围内名字唯一,且需要或可能会重复生成UUID的环境下;
    至于Version 4,个人的建议是最好不用(虽然它是最简单最方便的)。
    通常我们建议使用UUID来标识对象或持久化数据,但以下情况最好不使用UUID:
    映射类型的对象。比如只有代码及名称的代码表。
    人工维护的非系统生成对象。比如系统中的部分基础数据。
    对于具有名称不可重复的自然特性的对象,最好使用Version 3/5的UUID。比如系统中的用户。如果用户的UUID是Version 1的,如果你不小心删除了再重建用户,你会发现人还是那个人,用户已经不是那个用户了。(虽然标记为删除状态也是一种解决方案,但会带来实现上的复杂性。)

    展开全文
  • UUID

    2019-10-02 09:36:50
    在个人作品的小范围内可以保证ID不重复,但是一件全球化产品的ID值怎么保证不重复呢?uuid(universally unique )全球通用唯一ID,就为解决这一问题因运而生。 uuid是谁搞明白了,那它是怎么来的呢?uuid=当前时间+...
  • UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字 UUID...
  • 首先,可以确定的是,在功能上,中央空调和新风系统是不重复的。中央空调是通过制冷制热来调节室内温度的,而新风系统是利用室内外空气的循环来保证室内空气质量的。 其次,在提升生活舒适度上,两者是互补的。中央...
  • uuid

    2007-12-27 08:39:40
    从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID import java.util.UUID; public c....
  • 首先,可以确定的是,在功能上,中央空调和新风系统是不重复的。中央空调是通过制冷制热来调节室内温度的,而新风系统是利用室内外空气的循环来保证室内空气质量的。其次,在提升生活舒适度上,两者是互补的。中央...
  • UUID详解

    2020-05-26 14:14:36
    想必大家都用过UUID,但是UUID也有可能重复,在某些情况下我们需要注意。最近在网上看了几篇关于说明UUID的文章,这里转载记录一下。 1 定义 UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,...
  • UUID具有以下涵义: 经由一定的算法机器生成为了保证UUID的唯一性,规范定义了包括网卡MAC地址、...非人工指定,非人工识别UUID能人工指定的,除非你冒着UUID重复的风险。UUID的复杂性决定了“一般人“能...
  • 当然,你要说UUID是不是绝对的不会出现重复的,这个也能这样说的(我下面会提到)。 UUID具有以下涵义: 经由一定的算法机器生成为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间...
  • 上家公司面试,面试官问我一个问题,如何保证服务器在5000dps的时候订单号不重复? 当时前公司用的订单号还是32位的,用的方法是:UUID的16位随机数+截取时间戳的一部分+用户openId的一部分+随机数。我就凭借自己...
  • UUID使用详解

    2019-09-17 02:31:04
    1、UUID简介 uuid含义是通用唯一标识码, 2、目的 uuid的目的是让分布式系统中的所有元素,都能有唯一的辨识,而需要透过中央控制端做辨识。...UUID保证对在同一时空中的所有机器都是唯一的,通常平...
  • Java UUID

    2014-08-25 17:25:36
    从理论上讲,如果一台机器每秒产生10000000个UUID,则可以保证(概率意义上)3240年不重复。  JDK1.5中新增的一个类UUID,在java.util下,用它可以产生一个号称全球唯一的ID。 import java.util.UUID;  ...
  • JAVA UUID简介

    2014-08-21 10:28:19
    从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID package com.mytest
  • JAVA UUID

    2016-06-11 21:48:07
    从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID package com.mytest
  • UUID简介及常见问题分析1.UUID简介UUID即通用唯一识别码(UniversallyUniqueIdentifier),UUID的目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而...2.UUID基本生成规则UUID最重要的是要保证全局唯一性...
  • UUID小记

    2014-04-22 22:53:34
    从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。  UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID。 import java.util.UUID;  public
  • java uuid

    千次阅读 2013-04-14 10:51:07
    从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID package com.mytest;
  • 利用java生成uuid

    千次阅读 2020-08-07 20:17:51
    在实际项目中,我们可能想生成一个随机的而且可以保证唯一的标识,比如在给图片命名时,这时就可以采用uuid来生成随机字符串,这个随机字符串基本上是不会出现重复的。 什么是UUID uuid,就是 通用唯一识别码 的缩写...
  • Java 生成 UUID

    2017-08-29 10:13:12
    从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。 阅读目录 1.UUID 简介2.UUID 组成3.项目实战 回到顶部 1.UUID 简介  UUID含义是通用唯一识别码 (Un
  • JAVA UUID 生成

    2016-11-25 16:26:00
    从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。  UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID。  生成UUID的网站:...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 312
精华内容 124
关键字:

uuid保证不重复