精华内容
下载资源
问答
  • UUID

    2019-10-02 09:36:50
    在个人作品的小范围内可以保证ID不重复,但是一件全球化产品的ID值怎么保证不重复呢?uuid(universally unique )全球通用唯一ID,就为解决这一问题因运而生。 uuid是谁搞明白了,那它是怎么来的呢?uuid=当前时间+...

    UUID

    1.UUID是谁?从哪里来?要到哪里去?

    uuid是个ID,我们知道ID是不能重复的。在个人作品的小范围内可以保证ID不重复,但是一件全球化产品的ID值怎么保证不重复呢?uuid(universally unique )全球通用唯一ID,就为解决这一问题因运而生。
    uuid是谁搞明白了,那它是怎么来的呢?uuid=当前时间+时钟序列+本机Mac地址。Mac地址保证了你的ID和别人的不会重复。当前时间保证了你的ID不会和自己的重复,所以就是唯一的ID。有关组织规定其长度为128bit,为了提高效率,常用32位的字符串。
    uuid要到哪里去?也就是其应用为何呢?答案就是省略了用中央控制端来指定辨识资质的繁琐步骤,改用通用唯一的ID,比如建立数据库时很好的解决了名称重复的问题。在此基础上uuid有多个版本,常用的有基于时间的,基于名字的,DEC安全的和随机的uuid四种版本。

    2.认识python中的uuid库

    python标准库中带有uuid模块来进行uuid的生成和管理工作。python中的uuid模块基于信息如MAC地址、时间戳、命名空间、随机数、伪随机数
    (使用一定算法产生的0到1之间分布均匀的随机数,不是真正意义上的随机数)来生成uuid。具体方法有如下几个:  
      uuid.uuid1()  基于MAC地址,时间戳,随机数来生成唯一的uuid,可以保证全球范围内的唯一性。
      uuid.uuid2()  算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。不过需要注意的是python中没有基于DCE的算法,所以python的uuid模块中没有uuid2这个方法。
      uuid.uuid3(namespace,name)  通过计算一个命名空间和名字的md5散列值来给出一个uuid,所以可以保证命名空间中的不同名字具有不同的uuid,但是相同的名字就是相同的uuid了。namespace并不是一个自己手动指定的字符串或其他量,而是在uuid模块中本身给出的一些值。比如uuid.NAMESPACE_DNS,uuid.NAMESPACE_OID,uuid.NAMESPACE_URL,uuid.NAMESPACE_X500。这些值本身也是UUID对象,根据一定的规则计算得出。
      uuid.uuid4()  通过伪随机数得到uuid,是有一定概率重复的
      uuid.uuid5(namespace,name)  和uuid3基本相同,只不过采用的散列算法是sha1。
      uuid(1)绝对唯一,但是有可能会泄露计算机的MAC地址。uuid(4)是随机的,不能保证不会发生碰撞。但是几率非常非常小。uuid(3)和uuid(5)都采用空间命名的方式,只不过加密的散列方式不同。下面来贴出实例:
    在这里插入图片描述在这里插入图片描述

    展开全文
  • uuid的产生:用过数据库的人都知道在数据库中存在着主键约束,也就是不能出现相同的主键,如果用一些简单的整数做主键,很有可能会违法主键约束,从而产生了UUID(Universally UniqueIdentifier)全局唯一标识符,是指...

    uuid

    的产生:

    过数据库的人都知道在数据库中存在着主键约束,也就是不能出现相同的主键,如果用一些简单的整数做主键,很有可能会违法主键约束,从而产生了

    UUID(Universally Unique

    Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,详细信息请参

    照:http://baike.baidu.com/view/1052579.htm?fr=ala0

    web报表用户大部分都需要使用数据库,有时候就会用到这个方法,Java1.5中增加了UUID的方法,如何把java中的这个方法在报表中使用呢,下文将详细介绍。

    Java中的方法函数,在报表中使用,需要使用自定义函数来调用。

    实现思路:

    通过快逸提供的二次开发的接口和类实现把java中的方法调用到报表中。

    第一步:

    编写自定义函数的java类,继承com.runqian.report4.model.expression.Function这个类。

    public class MyUUid extends Function

    {

    public MyUUid(){ }//空值构造方法

    public Object calculate(Context ctx, boolean isInput) //标准接口,ctx为运算环境,isInput为是否填报

    {

    //得到java中的UUID,格式为类似****-****-****的,可以根据自行设置更改返回值的格式,这里以字符串的形式演示.

    String s = UUID.randomUUID().toString();

    String value = s.substring(0,

    + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);//拆分字符串,重新拼成一个新字符串.

    return value;

    }

    }

    第二步:

    将编译好的java类.class文件配置到设计器以及项目中.

    连同包一起复制到\reportHome\designer\classes和\reportHome\webapps\quiee\WEB-INF\classes目录下.

    修改\reportHome\designer\web\WEB-INF\classes\config\customFunctions.properties 文件

    加入以下内容.uuid=0,com.runqian.custom.function.MyUUid

    附注:uuid是自定义函数的名称,0代表非数据集函数, com.runqian.custom.function.MyUUid是自定义函数的包名+类名

    如果\reportHome\webapps\ quiee \WEB-INF\classes目前下没有config目录,则到\reportHome\designer\classes下复制config目录.

    配置完成后,在报表单元格中直接调用=uuid()即可.

    下面我们来看一张通过自定义函数实现UUID在报表中调用的报表。

    这样就达到了在报表中调用java提供的方法函数了。

    原文链接:自定义函数实现java中的全局唯一标识符(UUID)方法

    展开全文
  • 关于UUID

    2018-03-01 16:37:00
     UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。  在做后台管理的时候,经常会碰到打开某页面,编辑某功能页面,添加某功能页面,添加tab页,删除tab页等等情况,这个时候,我们该...

      UUID是通用唯一识别码的缩写,其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息。

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

      在做后台管理的时候,经常会碰到打开某页面,编辑某功能页面,添加某功能页面,添加tab页,删除tab页等等情况,这个时候,我们该怎么去操作呢,这么多页面,甚至某一页面被复用多次,怎么让这些页面具有唯一性呢?没错,这时候,uuid就可以派上用场了。

      UUID由哪几部分组成呢?这里借用一下百度百科的说法。 

      (1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
      (2)时钟序列。
      (3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。
     
      用法:
      在文件中引入uuid.js文件(如使用CDN加速)。例:<script src="https://cdn.bootcss.com/node-uuid/1.4.8/uuid.min.js"></script>
      然后就可以使用uuid.v1()或uuid.v4()来获取生成的uuid了。
      这里提到了v1与v4,它其实是uuid的两个版本,虽说是两个版本,却是有些不同的。
      v1:是基于时间的uuid,通过计算当前时间戳、随机数和机器MAC地址得到。
      v4:根据随机数,或者伪随机数生成UUID
      
      但是对于前端开发或者后台管理而言,个人更推荐使用v4,因为简单方便且不易重复。
      UUID的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的32个字符,形如:eeed5b6e-a326-4c94-8a22-55dda66d1560
      然而,有些情况下,这种形式并非是我们想要的,想要去掉中间的短横线,可以使用javascript中的replace方法与正则表达式相结合。
      例如:
    uuid.v4().replace(/\-/g, '')
    

      

      生成了uuid后,就可以将其作为页面的查询参数(如 http://192.168.0.19:8080/#/novelList?currentId=423f4c5fd44843a3a56107c3e381a810),红线标注部分就是生成的uuid,每次操作页面都会随机生成,且不会重复,从而保证了页面的唯一性。

    转载于:https://www.cnblogs.com/jf-67/p/8489166.html

    展开全文
  • UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的字符串,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID...

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

    下面是在Java中生成UUID具体代码实例:

    0818b9ca8b590ca3270a3433284dd417.png

    网络配图

    /*

    格式化一个UUID字符串

    生成一个UUID字符串

    */

    public class JavaUUID

    {

    public static void main(String args[])

    {

    generateUUID();

    }

    private static void generateUUID()

    {

    //格式化一个UUID字符串

    java.util.UUID uuid = java.util.UUID.fromString("63982000-bc30-ab45-df12-8752fbac99");

    System.out.println("格式化后的值: " + uuid);

    //生成一个UUID字符串

    System.out.println("生成一个UUID: " + uuid.randomUUID());

    }

    }

    展开全文
  • nrf52832学习笔记(6)添加uuid总结

    千次阅读 2018-11-13 21:48:27
    uuid是通用唯一标识码的意思,保证同一时空同一时空中所有机器标识唯一(百度这样说的) 下面总结下nrf52832怎么添加uuid. 可以做一下分类 添加蓝牙技术联盟定义的uuid 添加自定义的uuid 这2类又各可以分成下面2个...
  • 如果有并发,订单在不同主机中,把IP地址 CPU序列号 能区分的号码添加到序列号中就能保证唯一。 方案二: 时间戳+用户ID+随机数+乐观锁 方案三: 可以用redis的原子递增,做高可用集群 方案四: java自带的UUID ...
  • java中和mybatis中产生uuid的方法

    千次阅读 2019-04-24 15:03:28
    对于数据表中的主键id,我们一般会使用uuid产生随机数来保证唯一性,那么在项目编写中我们怎么来创建uuid呢,下面是两种方式 在mybatis中创建uuid 1 <insert id="add" useGeneratedKeys="true" parameterType=...
  • 链接:https://juejin.im/post/5d8882d8f265da03e369c063在高并发或者分表分库情况下怎么保证数据id的幂等性呢 经常用到的解决方案有以下几种: 微软公司通用唯一识别码(UUID) Twitter公司雪花算法(SnowFlake) ...
  • 由于Android蓝牙的通信都需要用到UUID,如果由手机发起搜索,当搜索到电脑的蓝牙时,能够得到蓝牙的地址(address),但通信时需要得到BluetoothSocket,而BluetoothSocket则需要电脑蓝牙的UUID,请问这个是怎么样...
  • 作者:CoderZS出自:掘金原文:https://juejin.im/post/5d8882d8f265da03e369c063在高并发或者分表分库情况下怎么保证数据id的幂等性呢?经常用到的解决方案有以下几种。微软公司通用唯一识别码(UUID)Twitter公司...
  •  通用唯一标识码,UUID(Universally Unique Identifier)可以产生一组32位数的16进制数字,这串数字保证了所产生的数字几乎是唯一的。这样就能保证产生的激活链接就是唯一的了。  在java中生成 uuid 是非常简单...
  • 当同一张表存在于多个数据库实例时,业务数据又要求唯一性,怎么保证业务主键是全局唯一的呢? 解决方案中包括UUID,数据库主键方式,或者通过在分布式系统中给每个分库设置不同的初始值,步长和分库...
  • 保证生成的ID全局唯一,不可重复 2.生成的后一个Id必须大于前一个Id 3.信息安全,防止恶意用户按照规则获取id 业界方案 1.UUID 通用识别码16字节,128位的长数字。 组成部分:当前日期和时间序列,mac地址 2.m...
  • 主键的设置方法有3种:一种是设置自增长主键,第二种是采用业务主键,第三种是生成唯一序列(使用uuid/guid);如何选择主键设置方式:1.主键的使用目的:a.为了保证数据查找唯一;b.提高存储效率和索引效率。2.使用自增...
  • 需要一个全服务唯一的id,即traceId,如何保证?traceId如何在服务间传递?traceId如何在服务内部传递?traceId如何在多线程中传递?我们一一来解答:全服务唯一的traceId,可以使用uuid生成,正常来说不会出现重复...
  • 分布式id生成器

    2019-09-29 10:28:04
    在高并发或者分表分库情况下怎么保证数据id的幂等性呢 经常用到的解决方案有以下几种。 微软公司通用唯一识别码(UUID) Twitter公司雪花算法(SnowFlake) 基于数据库的id自增 对id进行缓存 这里我们要谈到...
  • 在多用户、高并发的互联网应用场景中,mysql数据库表的主键(pk)怎么设计...好生成,容易保证唯一性(尤其全库唯一性的应用场景) 有利于多用户、高并发的写操作性能提升 父子表事务insert数据时,子表容易得到p...
  • 今天遇到了一个问题,现在互联网公司都是在分布式环境中,那么他们怎么保证订单号或者支付流水号是全局唯一(分布式ID)的呢?下面是笔者整理的一些常见的解决方案。 对于全局唯一ID传统的做法是使用UUID或者数据库...
  • 5位ID生成方案

    2018-08-30 15:59:00
    最近在某微信技术群,有人问到如何生成5位唯一数字+字母字符串的算法,要保证生成的字符串唯一,且字符串内部也要唯一。  怎么样,这个需求是不是很简单,也有点特殊呢?简单是指需求简单,特殊是指,字符串长度...
  • 后端面试题总结

    2018-11-21 23:39:22
    常见场景:高并发情况下,在保证并发性能的同时,如何生成全局唯一的订单号? 个人看法: 时间戳 + 随机数 +(用户id)+ 服务器机器码 + 进程id + 线程标识符 相关关键字: UUID,snowflake算法 参考: 不重复...
  • 数据库——mysql

    2019-04-04 21:46:39
    2、分表后怎么保证主键位唯一 --> 要求: 1.全局唯一性,不能出现重复的id号, 2.信息安全:防止恶意用户规矩id的规则来获取数据 3.数据递增:保证我的下一ID一定大于上一个ID 有几种策略:UUID 、雪花算法...
  • 在高并发或者分表分库情况下怎么保证数据id的幂等性呢? 经常用到的解决方案有以下几种。 微软公司通用唯一识别码(UUID) Twitter公司雪花算法(SnowFlake) 基于数据库的id自增 对id进行缓存 一、SnowFlake...
  • 在高并发或者分表分库情况下怎么保证数据id的幂等性呢? 经常用到的解决方案有以下几种。 微软公司通用唯一识别码(UUID) Twitter公司雪花算法(SnowFlake) 基于数据库的id自增 对id进行缓存 这里我们要谈到...
  • jwt学习笔记

    2020-12-20 00:07:48
    token就相当于这个密码,临时且具有唯一性,具有有效期,保证不重复 2.后台java代码怎么生成token,并且具备这些条件 可以采用uuid 生成token 通过redis实现 比如如说现在生成这个token [uuid生成]作为RedisKey 放入...
  • 在高并发或者分表分库情况下怎么保证数据id的幂等性呢?经常用到的解决方案有以下几种。微软公司通用唯一识别码(UUID)Twitter公司雪花算法(SnowFlake)基于数据库的id自增对id进行缓存一、SnowFlake算法snowflake是...
  • 在高并发或者分表分库情况下怎么保证数据id的幂等性呢?经常用到的解决方案有以下几种。微软公司通用唯一识别码(UUID)Twitter公司雪花算法(SnowFlake)基于数据库的id自增对id进行缓存一、SnowFlake算法snowflake是...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

uuid怎么保证唯一