国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

簡單實用!利用Redis輕松實現高并發全局ID生成器

數據庫 Redis
無論我們需要什么格式的ID,其實只要我們把握住其中的核心:incrBy命令,根據其原子性的特性,就可以生成我們需要的全局ID。

Redis作為高性能的KV數據庫,并且操作還是原子性的,所以用來做支持高并發的發號器十分合適。

本文給大家介紹3種常見的全局ID生成方式。

1、全局遞增ID

目標:一直遞增的全局ID。

/**
* 一直遞增的全局id
*
* @param redisTemplate redis客戶端對象
* @param busId 業務id,可以按需配置
* @param step 步長,即每次遞增的間隔
*/
public static String getNo(RedisTemplate<String, Object> redisTemplate, String busId, int step) {
//保存redis中的key,注意不要重復
String redisKey = "uniqueNo_";
//利用increment即redis原生incrBy命令的原子性特性生成遞增的序列號
Long increment = redisTemplate.opsForValue().increment(redisKey, step);
if (increment == null) {
throw new RuntimeException("redis命令執行失敗");
}
//業務id+遞增id,如果需要純數字,去掉業務id即可
return busId + increment;
}

2、以天為分割的全局ID

目標:生成格式為 yyyyMMdd + 遞增序列號的全局ID。

/**
* 以天為間隔的遞增序列號
* @param redisTemplate redis客戶端對象
* @param busId 業務id,可以按需配置
* @param step 步長,即每次遞增的間隔
*/
public static String getNo(RedisTemplate<String, Object> redisTemplate, String busId, int step) {
//當天日期,比如20221226
String date = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
//保存redis中的key,注意不要重復
String redisKey = "uniqueNo_" + date;
//利用increment即redis原生incrBy命令的原子性特性生成遞增的序列號
Long increment = redisTemplate.opsForValue().increment(redisKey, step);
if (increment == null) {
throw new RuntimeException("redis命令執行失敗");
}
if (step == increment.intValue()) {
//首次執行時,給redisKey設置ttl,第二天這個key就可以被redis自動刪除
redisTemplate.expire(redisKey, 25, TimeUnit.HOURS);
}
//組合 20221226 + 業務id + 0001(可以根據需要自由調整序列號的長度)
return date + busId + String.format("%04d", increment);
}

3、批量獲取ID

有時我們需要批量的獲取遞增ID,比如給一批訂單號設置ID。

/**
* 批量獲取id
*
* @param redisTemplate redis客戶端對象
* @param busId 業務id,可以按需配置
* @param size 獲取的id個數,與步長類似
*/
public static List<String> getNoByGroup(RedisTemplate<String, Object> redisTemplate, String busId, int size) {
//保存redis中的key,注意不要重復
String redisKey = "uniqueNo_group";
//設置步長為size,相當于一次性申請size個id
Long increment = redisTemplate.opsForValue().increment(redisKey, size);
if (increment == null) {
throw new RuntimeException("redis命令執行失敗");
}
long begin = increment - Long.parseLong(size + "");
List<String> rs = new ArrayList<>();
for (long i = begin + 1; i <= increment; i++) {
rs.add(busId + i);
}
return rs;
}

總結

無論我們需要什么格式的ID,其實只要我們把握住其中的核心:incrBy命令,根據其原子性的特性,就可以生成我們需要的全局ID。

但是需要注意的是,雖然incrBy命令是原子性的,但是通過組合鍵進行組合時,其實是破壞了這種原子性。如果有特殊的ID格式要求,務必要進行充分的測試。

責任編輯:姜華 來源: 今日頭條
相關推薦

2024-10-29 08:30:31

2017-07-01 16:02:39

分布式ID生成器

2019-12-27 10:00:34

開源技術 軟件

2022-07-25 10:27:36

背景生成器工具前端

2024-01-26 08:28:41

工單號生成器場景

2022-03-03 08:30:41

GeneratorES6函數

2025-03-11 08:50:00

CASID分布式

2020-08-21 13:15:29

開發技能代碼

2022-02-15 10:30:58

UUID

2011-12-23 13:42:05

JavaScript

2021-04-22 21:15:38

Generator函數生成器

2010-09-07 16:31:17

SQL語句insert

2015-08-25 11:07:58

2025-01-23 08:36:27

CSS開發工具

2016-01-08 10:55:31

PHP莫斯電碼生成器

2016-12-21 10:55:55

PHP莫斯電碼生成器

2025-01-06 09:06:04

JavaScriptWeb 開發Generators

2017-03-20 17:49:21

Java Web模板代碼

2021-07-14 07:17:37

Springboot分布式UIDGenerato

2024-11-01 15:51:06

點贊
收藏

51CTO技術棧公眾號

免费在线激情视频| av在线不卡顿| 亚洲综合色成人| 三级4级全黄60分钟| 久久午夜电影| 国产精品久久久对白| 欧美疯狂party性派对| 国产va免费精品高清在线| 欧洲大片精品免费永久看nba| 亚洲成人网久久久| av电影高清在线观看| 欧美日韩一区二区电影| 四虎精品成人影院观看地址| 亚洲激情图片小说视频| 成人免费观看www在线| 久久久午夜电影| 欧美日韩亚洲第一| 99久久夜色精品国产网站| 麻豆tv在线播放| 99精品久久只有精品| 久久久久久久中文| 久久久亚洲高清| 欧美一级特黄a| 国产精品久久久久久久久快鸭 | 欧美巨大xxxx做受沙滩| 欧美乱妇23p| 91在线看片| 欧美日韩国产高清一区| 一二三四区在线观看| 精品亚洲va在线va天堂资源站| 美女100%一区| 欧美wwwxxxx| 视频一区中文| 99在线首页视频| 欧美aa在线视频| 91.com在线| 国产精品网曝门| 在线观看你懂得| 欧美精品久久一区| 外国成人直播| 亚洲精品免费观看| 国产欧美自拍| 国产精品久久久久久影视| 99riav1国产精品视频| 国产日韩在线看片| 国产综合亚洲精品一区二| 色视频一区二区三区| 精品久久久久久久久久久久久| www.日本在线视频| 亚洲最新视频在线播放| 中文在线а√在线8| 国产亚洲精品高潮| 欧美91大片| 在线免费观看高清视频色| 91麻豆国产香蕉久久精品| 亚洲欧洲自拍| 亚洲午夜在线观看| 色屁屁一区二区| 美女久久99| 你懂的在线播放| 日韩av一卡二卡| 欧美www.| 午夜精品久久久久久久久久久久久| 国产精品久久久乱弄| 宅男在线观看免费高清网站| 日本一区二区三区在线播放| 99精品视频免费在线观看| 污污免费网站| 国产福利视频一区二区| 欧美日韩亚洲三区| 日韩欧美在线免费观看视频| 欧美一级日韩不卡播放免费| 九一成人免费视频| ·天天天天操| 午夜伊人狠狠久久| 成人日韩欧美| 91精品国产乱码久久久久久蜜臀 | 国产98色在线|日韩| 日本a级片在线观看| 日韩成人在线播放| 欧美电影一区| 网友自拍视频在线| 777久久精品一区二区三区无码| 日韩电影中文字幕av| 最新国产精品| 在线国产福利| 日韩av理论片| 欧美揉bbbbb揉bbbbb| 综合一区二区三区| 成年人视频在线| 日韩中文字幕在线精品| 国内精品在线播放| 成人一级视频| 激情伊人五月天| 亚洲黄色在线看| 精品一区二区久久久| 成人直播视频| 少妇高潮喷水久久久久久久久久| 亚洲a在线播放| yellow中文字幕久久| 美女91精品| 精品自拍偷拍| 一级特黄特色的免费大片| 久久久久久国产免费| 欧美h视频在线观看| 亚洲精品乱码久久久久久黑人| 91福利区在线观看| 成人区精品一区二区| 国产精品美女久久久久久2018| 91九色国产在线播放| 国产伦理一区二区三区| 亚洲人成网站色在线观看| 精品成人av| 天堂av一区二区| 欧美日韩精品专区| 日韩影院二区| 国产午夜在线| 欧美大片在线影院| 99re这里都是精品| 播放一区二区| 国产91在线亚洲| 亚洲国语精品自产拍在线观看| 欧美区日韩区| 免费在线看v| 91欧美激情另类亚洲| 亚洲香肠在线观看| 亚洲欧美日本伦理| 很黄很a的视频| 4444欧美成人kkkk| 国产91在线看| 成人亚洲免费| 国产真实老熟女无套内射| 日韩精品亚洲元码| 日本在线播放一区二区三区| 老司机av在线免费看| 国产日韩在线一区二区三区| 欧美在线综合视频| 国产一区视频在线观看免费| 97视频精彩视频在线观看| 成人黄色片视频网站| 欧美性videosxxxxx| 亚洲一区二区动漫| 香蕉成人app免费看片| 正在播放精油久久| 亚洲区在线播放| www.日韩在线| 国产精品毛片av| 欧美成人影院在线播放| 成人一区二区电影| 色哟哟日韩精品| 亚洲一区日韩| 一呦二呦三呦精品国产| 乱妇乱女熟妇熟女网站| 性色av一区二区三区在线观看| 亚洲欧洲另类国产综合| 成人在线免费小视频| av资源网在线观看| 色视频一区二区三区| 色吧影院999| 亚洲日本护士毛茸茸| 亚洲精品国产成人影院| 黄网站在线免费| 免费网站在线观看视频| 97在线看福利| 好吊成人免视频| 久久er精品视频| 成人国产精品一区二区网站| 黄色永久免费网站| 91网免费观看| 国产手机视频精品| 国产精品久久久久影院老司| 欧美xxxx中国| 99在线视频影院| 国产精品久久久毛片| 亚洲综合色激情五月| 日韩精品免费在线视频| 亚洲国产精品成人综合| 欧美亚韩一区| 精品视频在线一区二区在线| 91福利国产成人精品播放| 92看片淫黄大片欧美看国产片| 日韩小视频在线观看专区| 国产99久久久久| 自拍自偷一区二区三区| 国产福利视频在线观看| 色综合久久久久无码专区| 成人性生交大片免费看视频直播 | 欧美在线视频免费| 欧美午夜寂寞影院| 99在线视频精品| 亚洲精品国产偷自在线观看| 福利在线导航136| 男人天堂999| av噜噜色噜噜久久| 日韩在线视频观看| 91国产丝袜在线播放| 成人av高清在线| 亚洲乱码视频| 免费观看不卡av| 日韩午夜视频在线|