成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

有柳巖問:高并發庫存扣減一致性問題,怎么用 Redis 解決?

開發 架構
之前和大家聊了庫存異常的兩種情況,有留言說可以用 Redis 優化。Redis方案是可以的,今天簡單展開說說。

昨天和大家聊了庫存異常的兩種情況:

  • “先查后減”,容易出現異常;
  • “先查后設”,冪等性優化,解決重試問題;
  • “先查后設,有條件的設”,CAS優化,解決并發問題;

有留言說:可以用redis優化。redis方案是可以的,今天簡單展開說說。

redis一般如何操作庫存?

一般在redis客戶端執行:

$num = GET key$num = $num - $countSET key $num

這樣操作存在什么問題?

在并發量大的時候,會遇到和上一篇文章中提到的并發一致性問題。

是如何利用redis事務操作優化?

本質也是樂觀鎖。

redis的WATCH和EXEC可以提供類似事務的機制:

  • WATCH觀察key是否被改動;
  • 如果提交時key被改動,EXEC將返回null,表示事務失?。?/li>

保證一致性的庫存扣減可以優化為:

WATCH key$num = GET key$num = $num - $countMULTISET key $numEXEC

在WATCH之后,EXEC執行之前,如果key的值發生變化,則EXEC會失敗。

redis的WATCH為何能夠保證事務性?

本質上,和上一篇文章中提到的樂觀鎖CAS機制是一樣的,詳見:

庫存扣多啦,怎么用兩行代碼破解?

大部分情況下,redis不同的客戶端會訪問不同的key,所以WATCH碰撞的概率會比較小,在秒殺的業務場景,使用WATCH,也會有一定的沖突,需要針對秒殺業務做單獨的優化。

為什么redis更能應對超高并發的庫存管理?

根本原因,還是redis內存訪問與mysql數據落盤的性能差異。

redis庫存管理有什么需要注意的?

數據具備“易失性”,如果重啟,數據可能丟失,所以redis大部分時候是用來存儲允許cache miss的數據。如果實在要用redis來存儲業務上不能夠丟失的數據,需要重點設計一致性與可用性。

當然,redis也可以固化數據,但如果把redis當做DB用,為什么不直接使用mysql呢?

稍作總結

  • 可以使用redis的事務性扣減庫存,其核心原理也是CAS機制;
  • redis高性能的核心是內存存儲,一般用來存儲允許cache miss的數據;
  • 如果使用redis存儲不允許丟失的數據,需要注意一致性與可用性,這一點上,對比mysql沒有額外優勢;

具體怎么用,還得結合業務折衷。

任何脫離業務的架構設計都是耍流氓!

知其然,知其所以然。

思路比結論更重要。

責任編輯:趙寧寧 來源: 架構師之路
相關推薦

2024-04-11 13:45:14

Redis數據庫緩存

2022-08-11 07:55:05

數據庫Mysql

2019-09-18 08:41:53

并發扣減一致性redis

2016-11-29 09:00:19

分布式數據一致性CAS

2022-09-06 15:30:20

緩存一致性

2023-04-13 08:15:47

Redis緩存一致性

2024-11-14 07:10:00

2024-10-18 10:04:01

2023-08-01 07:42:33

Redis數據項目

2022-10-08 00:00:09

數據庫緩存系統

2019-09-08 22:45:48

并發扣款一致性冪等性

2024-10-10 08:32:28

Redis高并發Lua

2025-06-16 02:11:00

2024-01-10 08:01:55

高并發場景悲觀鎖

2019-02-13 11:04:42

系統緩存軟件

2022-06-21 21:47:13

數據系統

2024-11-07 22:57:30

2022-05-31 08:37:59

RedisMySQL數據一致性

2017-09-04 14:46:10

分布式事務問題

2012-09-24 09:35:42

分布式系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级片免费看 | 亚洲丝袜天堂 | 久久电影一区 | 成人精品国产一区二区4080 | 五月免费视频 | av一区二区三区四区 | 国产精品一区久久久 | 极品电影院 | 黄色成人av| 一级毛片免费完整视频 | 国产精品日韩欧美一区二区三区 | 国产黄色在线观看 | 毛片区| 亚洲黄色片免费观看 | 亚洲精品国产电影 | 狠狠躁躁夜夜躁波多野结依 | 日韩不卡一区二区三区 | 九九免费在线视频 | 99这里只有精品 | 欧美视频第二页 | 久久久久久国产精品久久 | 欧美激情视频一区二区三区在线播放 | aaaaaaa片毛片免费观看 | 成人aaa视频 | 中文字幕视频一区二区 | 久久99精品久久久久 | 久久久久免费精品国产 | 黄色一级网 | 国产综合网站 | 亚洲免费在线 | 成人高清在线视频 | 综合久久99| 成人免费在线播放视频 | 在线āv视频 | 美美女高清毛片视频免费观看 | 亚洲综合二区 | 久久久久国产精品一区 | 久久久国产精品视频 | 久久成人精品视频 | 国产一区二区中文字幕 | 久久婷婷国产麻豆91 |