Redis實現分表操作id唯一


業務場景

大型企業級應用中,分表操作是基本操作,使用多張表存儲同類型數據,但是對應的主鍵id必須保證統一性,不能重復。Oracle數據庫具有sequence設定,可以解決該問題,但是mysql數據庫並不具有類似的機制,那么如何解決?

解決方案

  • 設置數值數據增加指定范圍的值
incr key
incrby key increment
incrbyfloat key increment
  • 設置數值數據減少指定范圍的值
decr key
decrby key increment

string作為數值操作

  • string在redis內部存儲默認就是一個字符串,當遇到增減類操作incr,decr時會轉成數值型進行計算
  • redis所有的操作都是原子性的,采用單線程處理所有業務,命令是一個一個執行的,因此無需考慮並發帶來的數據影響.
  • 注意: 按數值進行操作的數據,如果原始數據不能轉成數值,或超越了redis數值上限范圍,將報錯。9223372036854775807 (java中long型數據最大值,Long.MAX_VALUE)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM