91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

新巴尔虎右旗| 南安市| 南陵县| 乌苏市| 定兴县| 登封市| 浏阳市| 南雄市| 永城市| 闻喜县| 台南市| 平顶山市| 黄浦区| 五家渠市| 石狮市| 旬阳县| 嘉定区| 高台县| 宝应县| 奉节县| 房山区| 襄城县| 盐池县| 新乐市| 农安县| 青神县| 彭山县| 边坝县| 岳阳县| 许昌县| 尚志市| 宁河县| 迁安市| 富平县| 常德市| 福州市| 磴口县| 剑河县| 宜昌市| 杭州市| 凤山县|