當前位置:成語大全網 - 新華字典 - Redis-全局唯壹ID

Redis-全局唯壹ID

tips:Ctrl + F快速定位所需內容閱讀吧。

1、全局唯壹ID特點

2、全局唯壹ID生成策略

1、snowflake算法全局唯壹ID策略

此處我們參考 snowflake算法的ID策略 ,其具體策略如下:

① 1位,固定位;

② 41位,用來記錄時間戳(毫秒),接近69年;

③ 10位,用來記錄工作機器id;

④ 12位,序列號,用來記錄同毫秒內產生的不同id;

2、Redis自增全局唯壹ID策略

自定義我們自己的 Redis自增的ID策略 ,具體如下:

① 1位,固定位;

② 31位,用來記錄時間戳(秒),接近69年;

③ 32位,序列號,用來記錄同壹秒內產生的不同id;

1、獲取開始時間戳

LocalDateTime#of(int year, int month, int dayOfMonth, int hour, int minute, int second) 方法,傳入自己需要的起始年月日時分秒;

如:2022年1月1日 00點00分00秒,為 1640995200L 。

2、編寫ID生成工具類

@Component註解 ,將工具類註冊到Spring容器當中,方便使用;

BEGIN_TIMESTAMP 自定義起始的時間戳;

COUNT_BITS 位移量,後續拼接全局唯壹ID時使用;

timestamp 獲取當前設置起始時間戳的偏移量;

拼接key ,例如:incr:order:20220325;

位運算拼接全局ID, timestamp << COUNT_BITS | count; ;

3、測試生成全局唯壹ID

註入RedisIdWorker對象,用於測試;

編寫測試方法:

① 使用 線程池 模擬並發調用,此處簡單處理;

② 使用 CountDownLatch 控制線程執行;

完整的測試方法如下:

以上即為Redis全局唯壹ID的基礎內容,感謝閱讀。