如何用redis來生成唯一Id

2022-01-14 10:28:02 字數 1799 閱讀 8201

那麼,就讓樓主來介紹一下redisatomiclong類吧~

redisatomiclong類的構造方法如下:

該例項對應的自動增長的主鍵的key的名字為為rediscounter,如果redis中存在key的name為rediscounter的鍵值對,那麼,則取其值;否則,將rediscounter對應的key值設定為0;

建立乙個新的redisatomiclong例項,該例項對應的自動增長的主鍵的key的名字為為rediscounter,並將key name為rediscounter的值設定為initialvalue;

redisatomiclong類有以下幾個主要的方法:

那麼,我們如何獲得乙個redisatomiclong例項呢?樓主提供以下兩個方法:

方法一:直接在配置檔案中配置

在需要用到redisatomiclong例項的類裡面加入下面這段**即可

@resource

private redisatomiclong redisatomiclong;

方法二:在**中直接獲得

redisatomiclong redisatomiclong = new redisatomiclong("somekey",redistemplate.getconnectionfactory());

好了,獲得redisatomiclong例項之後如何來獲得自動增長的值呢?

// 第一次,設定初始值

long original = 0l;

// 獲取 code 值

original = redisatomiclong.get();

system.out.println("*****************original:"+original);

// 第一次,設定初始值

if (original == 0l)

//獲得加1後的值

long now = redisatomiclong.incrementandget();

system.out.println("*****************now:"+now);

輸出值:

*****************original:0

*****************now:6

有人或許會問,如果我想要同時有兩個自增長的主鍵怎麼辦?下面的這段**就可以解決這個問題~

redisatomiclong atomiclong1 = new redisatomiclong("somekey1", redistemplate.getconnectionfactory(),3l);//建立例項的時候就設定初始值為3

redisatomiclong atomiclong2 = new redisatomiclong("somekey2", redistemplate.getconnectionfactory(),5l);//建立例項的時候就設定初始值為5

long now1 = atomiclong1.incrementandget();

long now2 = atomiclong2.incrementandget();

system.out.println("*****************now:"+now1);

system.out.println("*****************now:"+now2);

輸出值:

*****************now:6

*****************now:7

如何用redis來生成唯一Id

那麼,就讓樓主來介紹一下redisatomiclong類吧 redisatomiclong類的構造方法如下 該例項對應的自動增長的主鍵的key的名字為為rediscounter,如果redis中存在key的name為rediscounter的鍵值對,那麼,則取其值 否則,將rediscounter對...

如何用word vb巨集來生成sql

昨天boss下了個命令讓我用word巨集的方式來快速生成sql,這樣在我們建表的時候就不用在一條一條元資料的輸入。從而提高效率節約成本 接到命令後就開始著手來做,一邊上網搜相關的現成的材料,一邊看vb巨集的 教程。終於讓我寫出了這個程式,雖說有點兒小吧,可是感覺挺好的。這裡的vb巨集要針對固定的資料...

使用redis生成全域性唯一id

生成唯一客戶編碼 需求 1.id生成有一定規則,可識別 2.全域性保持唯一,支援分布式 思路 1.年月日 每日自增數 2.每天23 59 59秒把自增數清0 優勢 1.通過年月日可以看出使用者註冊時間 2.通過自增數可以看出每日註冊量 使用redis原因 redis本身單執行緒,不會出現併發問題 r...