中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

平頂山網(wǎng)站建設(shè)費用競價排名是什么

平頂山網(wǎng)站建設(shè)費用,競價排名是什么,做巧克力的網(wǎng)站,wordpress 京東導(dǎo)購Redis:實現(xiàn)全局唯一ID一. 概述二. 實現(xiàn)(1)獲取初始時間戳(2)生成全局ID三. 測試為什么可以實現(xiàn)全局唯一?其他唯一ID策略補充:countDownLatch一. 概述 全局ID生成器:是一種在【分布式…

Redis:實現(xiàn)全局唯一ID

  • 一. 概述
  • 二. 實現(xiàn)
    • (1)獲取初始時間戳
    • (2)生成全局ID
  • 三. 測試
    • 為什么可以實現(xiàn)全局唯一?
    • 其他唯一ID策略
    • 補充:countDownLatch

一. 概述

全局ID生成器:是一種在【分布式系統(tǒng)下】用來生成全局唯一ID的工具;
全局ID需要滿足的特性:
1.唯一性
2.高可用:集群、哨兵機(jī)制;
3.高性能
4.遞增性:Redis中的String數(shù)據(jù)類型的有自增特性!
5.安全性:將自增數(shù)值進(jìn)行拼接,不容易猜出來;

ID結(jié)構(gòu)
符號位(1位) + 時間戳(31位) + 序列號(32位);
時間戳為從起始時間到現(xiàn)在的時間差;
理論上支持1秒鐘2^32個訂單;
在這里插入圖片描述

二. 實現(xiàn)

(1)獲取初始時間戳

先設(shè)定一個初始時間如2022年1月1日,獲取初始時間的時間戳
在這里插入圖片描述
在這里插入圖片描述

(2)生成全局ID

  1. 在utl層中定義一個RedisIdWorker類的bean;
  2. 寫一個方法,返回值是long型;不同業(yè)務(wù)要區(qū)別,所以使用前綴區(qū)分業(yè)務(wù);
  3. 生成 時間戳:即當(dāng)前時間秒數(shù) - 初始時間秒數(shù);
  4. 生成 序列號:使用stringRedisTemplate中String類型的自增方法increment()/INCR,而key(2^32)遲早會用完存不下,所以不能使用同一個key來自增,

序列號的key:所以使用精確到天的時間作為key,這樣一個key就對應(yīng)一天,不同天數(shù)的key不同,這樣key的上限就是一天的下單量即2^32個,key夠用;這樣還方便統(tǒng)計訂單量;

  1. 拼接前綴 + 符號位 + 時間戳 + 序列號,先使用位運算,將時間戳左移32位(序列號的位數(shù)),最低位都會變成0;
    然后把序列號count拼接上去:使用或運算填充,有1則1,否則為0;
    在這里插入圖片描述

三. 測試

  1. 用工廠方法創(chuàng)建線程池,容量500;
  2. 創(chuàng)建一個任務(wù),在任務(wù)中生成并 打印ID100次,共給線程池提交300次任務(wù);
    由于線程池會異步執(zhí)行,使用countDownLatch,300個線程,每個線程會countdown一次,直到計數(shù)為0就會喚醒await()所在的當(dāng)前線程,就會去main中打印所花的時間了;
    在這里插入圖片描述

結(jié)果:生成共3w個ID;
在這里插入圖片描述
查看Redis:
在這里插入圖片描述

為什么可以實現(xiàn)全局唯一?

因為生成ID時用的是Redis的 increment / INCR功能,每調(diào)用一次都會進(jìn)行自增;

其他唯一ID策略

Redis產(chǎn)生的ID是數(shù)值類型long,占空間小;
UUID:JDK自帶,16進(jìn)制字符串,不是自增的,不滿足要求;
雪花snowflake算法:需要維護(hù)機(jī)器id,對于時鐘依賴比較高;
數(shù)據(jù)庫實現(xiàn),性能不如Redis;

補充:countDownLatch

用來進(jìn)行線程同步協(xié)作,等待所偶有線程完成倒計時;
其中構(gòu)造參數(shù)用來初始化等待計數(shù)值,countDown()用來計數(shù)-1,await()用來等待技術(shù)歸零,歸零后就會執(zhí)行當(dāng)前線程;

http://www.risenshineclean.com/news/32836.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)流程有東莞網(wǎng)站推廣方案
  • 成都模板網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣優(yōu)化平臺
  • 下沙開發(fā)區(qū)建設(shè)局網(wǎng)站廣州軟文推廣公司
  • 威海做網(wǎng)站多少錢百度助手app下載
  • 網(wǎng)站建設(shè)計劃網(wǎng)絡(luò)營銷有什么崗位
  • 做網(wǎng)站論文網(wǎng)絡(luò)營銷的模式有哪些?
  • 做二手車網(wǎng)站怎么做的外貿(mào)軟件排行榜
  • 網(wǎng)站建設(shè)倒計時模板推廣引流圖片
  • 網(wǎng)站開發(fā)使用哪種語言免費網(wǎng)站站長查詢
  • 個人做網(wǎng)站如何賺錢嗎百度客服電話人工服務(wù)熱線電話
  • 北京市網(wǎng)站建設(shè)百度搜索推廣怎么做
  • 青島開發(fā)區(qū)網(wǎng)站建設(shè)公司汽車seo是什么意思
  • 網(wǎng)站建設(shè)與網(wǎng)頁設(shè)計如何優(yōu)化百度seo排名
  • 魚滑怎么制作教程搜索引擎優(yōu)化seo的英文全稱是
  • 施工效果圖怎么做關(guān)鍵詞搜索優(yōu)化
  • 江蘇做網(wǎng)站公司東莞整站優(yōu)化推廣公司找火速
  • 個人電腦做網(wǎng)站服務(wù)器教程制作一個app軟件需要多少錢
  • 利辛做網(wǎng)站搜索引擎關(guān)鍵詞怎么選
  • php怎么建立站點下載百度語音導(dǎo)航地圖安裝
  • 如何更新網(wǎng)站緩存濟(jì)南網(wǎng)絡(luò)優(yōu)化廠家
  • 網(wǎng)站中鏈接怎么做推廣網(wǎng)站公司
  • 網(wǎng)站開發(fā)進(jìn)度管理表谷歌seo工具
  • 太原網(wǎng)站建設(shè)費用上首頁seo
  • 網(wǎng)站一般寬度windows優(yōu)化大師有哪些功能
  • 國內(nèi) 設(shè)計網(wǎng)站的公司網(wǎng)站3000行業(yè)關(guān)鍵詞
  • 手機(jī)網(wǎng)站開發(fā)教程東莞做網(wǎng)站哪家公司好
  • 網(wǎng)站有沒有做網(wǎng)站地圖怎么看今天國際新聞大事
  • 想做一個自己設(shè)計公司的網(wǎng)站怎么做的網(wǎng)站推廣公司電話
  • 電腦做系統(tǒng)網(wǎng)站鄭州網(wǎng)站優(yōu)化培訓(xùn)
  • 軟件工程師是程序員嗎電腦優(yōu)化工具