欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

?Redis 串行生成順序編碼的方法實現(xiàn)

 更新時間:2022年04月03日 10:23:48   作者:這個殺手冷死了  
本文主要介紹了?Redis 串行生成順序編碼的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

場景:針對于分布式并發(fā)環(huán)境,易出現(xiàn)編碼生成重復(fù)問題

方案特點:串行操作可避免阻塞加鎖,處理效率更高

具體解決方案

private final static String ENTERPRISE_CODE = "enterpriseCode";

@Resource
private RedisTemplate redisTemplate;

private String generateCode() {
? ? String code;
? ? if (!redisTemplate.hasKey(ENTERPRISE_CODE)) {
? ? ? ? // Mybatis-Plus 查詢數(shù)據(jù)庫中企業(yè)編碼最大值
? ? ? ? EnterprisePO enterprise = enterpriseService.getOne(
? ? ? ? ? ? Wrappers.<EnterprisePO>lambdaQuery()
? ? ? ? ? ? ? ? .orderByDesc(EnterprisePO::getCode)
? ? ? ? ? ? ? ? .last("limit 1"));
? ? ? ? // 緩存企業(yè)編碼
? ? ? ? if (ObjectUtils.isNotEmpty(enterprise)) {
? ? ? ? ? ? // 如果 key 不存在才 set 避免并發(fā)重復(fù) set,setIfAbsent() 屬于原子操作
? ? ? ? ? ? redisTemplate.opsForValue().setIfAbsent(ENTERPRISE_CODE, Long.valueOf(enterprise.getCode()));
? ? ? ? ? ? // 也可設(shè)置 key 過期時間,此處設(shè)置為 1 天
? ? ? ? ? ? // redisTemplate.opsForValue().setIfAbsent(ENTERPRISE_CODE, Long.valueOf(enterprise.getCode()), 1, TimeUnit.DAYS);
? ? ? ? }
? ? }
? ? // 以遞增方式緩存最新編碼
? ? Long number = redisTemplate.opsForValue().increment(ENTERPRISE_CODE, 1L);
? ? // %06d 意為保留 6 位數(shù),不足六位數(shù)字前面補 0
? ? code = String.format("%06d", number);
? ? return code;
}

到此這篇關(guān)于 Redis 串行生成順序編碼的方法實現(xiàn)的文章就介紹到這了,更多相關(guān) Redis 串行生成順序編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • redis 解決key的亂碼問題,并清理詳解

    redis 解決key的亂碼問題,并清理詳解

    這篇文章主要介紹了redis 解決key的亂碼問題,并清理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Redis 的 GeoHash詳解

    Redis 的 GeoHash詳解

    這篇文章主要介紹了Redis 的 GeoHash詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Redis中的配置文件,數(shù)據(jù)持久化,事務(wù)

    Redis中的配置文件,數(shù)據(jù)持久化,事務(wù)

    這篇文章主要介紹了Redis中的配置文件,數(shù)據(jù)持久化,事務(wù)問題,具有很好的參考價值,希望對大家有所幫助。
    2022-12-12
  • Redis全量復(fù)制與部分復(fù)制示例詳解

    Redis全量復(fù)制與部分復(fù)制示例詳解

    這篇文章主要給大家介紹了關(guān)于Redis全量復(fù)制與部分復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis爬蟲具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法

    將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法

    這篇文章主要介紹了將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法,原理其實只是將內(nèi)存虛擬作為磁盤,需要的朋友可以參考下
    2015-06-06
  • Redis為什么快如何實現(xiàn)高可用及持久化

    Redis為什么快如何實現(xiàn)高可用及持久化

    這篇文章主要介紹了Redis為什么快如何實現(xiàn)高可用及持久化,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 如何在centos中安裝redis插件bloom-filter

    如何在centos中安裝redis插件bloom-filter

    布隆過濾器在第一次add的時候自動創(chuàng)建基于默認(rèn)參數(shù)的過濾器,Redis還提供了自定義參數(shù)的布隆過濾器,下面這篇文章主要給大家介紹了關(guān)于如何在centos中安裝redis插件bloom-filter的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • redis的主從配置方法詳解

    redis的主從配置方法詳解

    今天為大家介紹下linux系統(tǒng)下redis的主從配置方法,Linux系統(tǒng)下的redis的主從配置方法非常簡單下面是具體的操作步驟
    2018-09-09
  • Redis不同數(shù)據(jù)類型的命令語句詳解

    Redis不同數(shù)據(jù)類型的命令語句詳解

    這篇文章主要介紹了Redis不同數(shù)據(jù)類型的命令語句,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Redis教程(十):持久化詳解

    Redis教程(十):持久化詳解

    這篇文章主要介紹了Redis教程(十):持久化詳解,本文講解了Redis提供了哪些持久化機(jī)制、RDB機(jī)制的優(yōu)勢和劣勢、AOF機(jī)制的優(yōu)勢和劣勢、其它等內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評論