數(shù)據(jù)庫(kù) ID 生成方案:Redis

使用 Redis 來生成分布式 ID,其實(shí)和利用 Mysql 自增 ID 類似,可以利用 Redis 中的 incr 命令來實(shí)現(xiàn)原子性的自增與返回,比如:

127.0.0.1:6379> set id 1   // 初始化自增 ID 為1
OK
127.0.0.1:6379> incr id   // 增加1,并返回
(integer) 2
127.0.0.1:6379> incr id   // 增加1,并返回
(integer) 3

使用 redis 的效率是非常高的,但是要考慮持久化的問題。Redis 支持 RDB 和 AOF 兩種持久化的方式。

RDB 持久化相當(dāng)于定時(shí)打一個(gè)快照進(jìn)行持久化,如果打完快照后,連續(xù)自增了幾次,還沒來得及做下一次快照持久化,這個(gè)時(shí)候 Redis 掛掉了,重啟 Redis 后會(huì)出現(xiàn) ID 重復(fù)。

AOF 持久化相當(dāng)于對(duì)每條寫命令進(jìn)行持久化,如果 Redis 掛掉了,不會(huì)出現(xiàn) ID 重復(fù)的現(xiàn)象,但是會(huì)由于 incr 命令過多,導(dǎo)致重啟恢復(fù)數(shù)據(jù)時(shí)間過長(zhǎng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 一、Redis高可用概述 在介紹Redis高可用之前,先說明一下在Redis的語(yǔ)境中高可用的含義。 我們知道,在w...
    空語(yǔ)閱讀 1,608評(píng)論 0 2
  • 企業(yè)級(jí)redis集群架構(gòu)的特點(diǎn) 海量數(shù)據(jù) 高并發(fā) 高可用 要達(dá)到高可用,持久化是不可減少的,持久化主要是做災(zāi)難恢復(fù)...
    lucode閱讀 2,221評(píng)論 0 7
  • NOSQL類型簡(jiǎn)介鍵值對(duì):會(huì)使用到一個(gè)哈希表,表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù),如redis,volde...
    MicoCube閱讀 4,058評(píng)論 2 27
  • 因前兩天服務(wù)器掛掉了,導(dǎo)致項(xiàng)目使用的redis數(shù)據(jù)庫(kù)異常,丟失了部分?jǐn)?shù)據(jù),為了能夠更好的使用Redis,結(jié)合網(wǎng)上的...
    呦_小宋啊閱讀 2,300評(píng)論 2 9
  • 1.1 資料 ,最好的入門小冊(cè)子,可以先于一切文檔之前看,免費(fèi)。 作者Antirez的博客,Antirez維護(hù)的R...
    JefferyLcm閱讀 17,099評(píng)論 1 51