中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis實現訂單系統分庫分表的索引表

發布時間:2021-06-23 14:50:31 來源:億速云 閱讀:292 作者:chen 欄目:大數據

這篇文章主要介紹“redis實現訂單系統分庫分表的索引表”,在日常操作中,相信很多人在redis實現訂單系統分庫分表的索引表問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”redis實現訂單系統分庫分表的索引表”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

分庫分表的時候,仍然有多維度查詢的需求,這個時候,常見方式是做索引表,索引表有多種實現方式,可以用redis, 可以用mysql binlog 實現等等,當用redis 實現索引表,我們怎么去設計?我們要主要哪些要點呢?比如我們以外賣訂單為例,用district 分表,分別建立商戶的索引表和乘客的索引表。

  1. 我們的查詢需求有哪些?

  2. 用redis 做索引表,我們用什么數據結構合適?怎么設計?

  3. 索引表與主庫怎么保證一致性?

我們有哪些需求?

查詢需求主要有來自訂單id 的,來自商家id,來自買家id的需求,同時,還有查詢商家歷史訂單,查詢買家歷史訂單。然后,我們全國的訂單,默認如果按照地區分表,這里商家id 和買家id 如果跟訂單id 和地區映射起來?同時,歷史訂單,涉及了時間維度,如何設計索引數據結構?

如何用redis 做索引表?

使用redis 如果滿足上面的索引需求?這里zset 是非常合適的。

新建訂單
zadd salerId timestamp OrderId+district;
zadd buyerId timestamp OrderId+district;
查詢商家歷史訂單
zrange salerId  timestamp1 timestamp2
select * from table where order_id =xxx;
查詢買家歷史訂單
zrange buyerId  timestamp1 timestamp2
select * from table where order_id =xxx;

索引表表和主庫的一致性如何保證?

索引表需要跟主庫訂單表是強一致的,這里有幾個問題。寫的時候是先寫redis 還是先寫mysql ,讀的時候redis 沒讀到,但是mysql 有改如果處理? 其實比較好處理,寫先寫redis,讀的時候讀不到直接返回。強一致需要redis 和 mysql 定時對賬,然后redis 為了防止被開發誤操作,需要權限校驗,key 審核,要在codis 層過濾一遍key,過濾掉flush 等指令。

綜上,利用redis 做mysql 的二級索引其實是可行的方案,在一些大公司也有過一些實踐。使用redis 做索引表有什么缺陷呢?畢竟redis 是內存結構,如果發生數據丟失,索引重構是非常惡心的。

到此,關于“redis實現訂單系統分庫分表的索引表”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江山市| 乌兰浩特市| 临武县| 武安市| 云南省| 冷水江市| 东至县| 苍南县| 太仓市| 隆子县| 会同县| 佛教| 广汉市| 鹰潭市| 馆陶县| 中山市| 改则县| 扎鲁特旗| 当阳市| 云龙县| 苗栗县| 讷河市| 清新县| 长葛市| 绥宁县| 桐庐县| 大洼县| 印江| 眉山市| 西峡县| 汶上县| 舒兰市| 芷江| 泸溪县| 武强县| 南部县| 栾城县| 策勒县| 秭归县| 玉溪市| 安图县|