当前位置: 首页 > news >正文

福田网站建设哪家公司靠谱新手如何自己做网站

福田网站建设哪家公司靠谱,新手如何自己做网站,乌鲁木齐住房和城乡建设委员会网站,福州市网站建设有限公司Redis:实现全局唯一ID一. 概述二. 实现(1)获取初始时间戳(2)生成全局ID三. 测试为什么可以实现全局唯一?其他唯一ID策略补充:countDownLatch一. 概述 全局ID生成器:是一种在【分布式…

Redis:实现全局唯一ID

  • 一. 概述
  • 二. 实现
    • (1)获取初始时间戳
    • (2)生成全局ID
  • 三. 测试
    • 为什么可以实现全局唯一?
    • 其他唯一ID策略
    • 补充:countDownLatch

一. 概述

全局ID生成器:是一种在【分布式系统下】用来生成全局唯一ID的工具;
全局ID需要满足的特性:
1.唯一性
2.高可用:集群、哨兵机制;
3.高性能
4.递增性:Redis中的String数据类型的有自增特性!
5.安全性:将自增数值进行拼接,不容易猜出来;

ID结构
符号位(1位) + 时间戳(31位) + 序列号(32位);
时间戳为从起始时间到现在的时间差;
理论上支持1秒钟2^32个订单;
在这里插入图片描述

二. 实现

(1)获取初始时间戳

先设定一个初始时间如2022年1月1日,获取初始时间的时间戳
在这里插入图片描述
在这里插入图片描述

(2)生成全局ID

  1. 在utl层中定义一个RedisIdWorker类的bean;
  2. 写一个方法,返回值是long型;不同业务要区别,所以使用前缀区分业务;
  3. 生成 时间戳:即当前时间秒数 - 初始时间秒数;
  4. 生成 序列号:使用stringRedisTemplate中String类型的自增方法increment()/INCR,而key(2^32)迟早会用完存不下,所以不能使用同一个key来自增,

序列号的key:所以使用精确到天的时间作为key,这样一个key就对应一天,不同天数的key不同,这样key的上限就是一天的下单量即2^32个,key够用;这样还方便统计订单量;

  1. 拼接前缀 + 符号位 + 时间戳 + 序列号,先使用位运算,将时间戳左移32位(序列号的位数),最低位都会变成0;
    然后把序列号count拼接上去:使用或运算填充,有1则1,否则为0;
    在这里插入图片描述

三. 测试

  1. 用工厂方法创建线程池,容量500;
  2. 创建一个任务,在任务中生成并 打印ID100次,共给线程池提交300次任务;
    由于线程池会异步执行,使用countDownLatch,300个线程,每个线程会countdown一次,直到计数为0就会唤醒await()所在的当前线程,就会去main中打印所花的时间了;
    在这里插入图片描述

结果:生成共3w个ID;
在这里插入图片描述
查看Redis:
在这里插入图片描述

为什么可以实现全局唯一?

因为生成ID时用的是Redis的 increment / INCR功能,每调用一次都会进行自增;

其他唯一ID策略

Redis产生的ID是数值类型long,占空间小;
UUID:JDK自带,16进制字符串,不是自增的,不满足要求;
雪花snowflake算法:需要维护机器id,对于时钟依赖比较高;
数据库实现,性能不如Redis;

补充:countDownLatch

用来进行线程同步协作,等待所偶有线程完成倒计时;
其中构造参数用来初始化等待计数值,countDown()用来计数-1,await()用来等待技术归零,归零后就会执行当前线程;

http://www.qdjiajiao.com/news/6747.html

相关文章:

  • 如何做网站banner电脑培训中心
  • 邯郸做移动网站哪儿好疫情最新数据
  • 沈阳疫情最新消息今天封城了重庆seo小潘大神
  • 电子商务网站建设的毕业论文广州王牌seo
  • 贵阳制作网站的公司个人接app推广单去哪里接
  • 建设 展示型企业网站网上推销产品的软件
  • 北京网站建设公司分形科技今日最新国际新闻头条
  • 用vs2012做网站案例seo黑帽技术工具
  • 网站建设栏目提纲宁波谷歌seo推广
  • 各大网站做推广的广告怎么做最好用的手机优化软件
  • 购买域名后怎么建网站上海关键词优化报价
  • 如何找企业联系做网站新开网店自己如何推广
  • 长宁网站建设公司网络营销专业毕业论文
  • 西部数码网站空间推广软文案例
  • 壁纸网站设计制作专业网络seo啥意思
  • 中英文网站模板长沙在线网站的目标客户
  • 做网站做哪个优化大师电脑版官网
  • dooplay主题wordpress广东的seo产品推广服务公司
  • 互联网公司排名 中国北京seo关键词
  • 比特币交易所网站开发怎么建网站卖东西
  • 用php做的订票网站seo建站系统
  • 网站开发的技术流程图简述网络营销的特点及功能
  • 移动互联网时代的到来为很多企业提供了新的商业机会什么是seo搜索
  • 平台类网站建设价格表沈阳seo排名优化教程
  • 建个网站用多少钱网站优化效果
  • 天津市网站建设流量精灵
  • 公司网站做一下多少钱如何销售自己产品方法有哪些
  • 做网站之前要安装什么seo含义
  • 网站建设案例单招网百度推广账号出售
  • 电子加工东莞网站建设百度学术官网入口网页版