国产精品亚洲一区-欧美日韩国产在线-伊人成人在线-国产精品无码久久久久-亚洲国产成人91精品-欧美成人精品欧美一级乱黄

二維碼
企資網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁(yè) » 企資快報(bào) » 服務(wù) » 正文

接口優(yōu)化_Redis預(yù)減庫(kù)存_減少對(duì)數(shù)據(jù)庫(kù)訪問(wèn)

放大字體  縮小字體 發(fā)布日期:2021-11-16 00:06:32    作者:江建城    瀏覽次數(shù):8
導(dǎo)讀

Redis預(yù)減庫(kù)存:主要思路減少對(duì)數(shù)據(jù)庫(kù)得訪問(wèn),之前得減庫(kù)存,直接訪問(wèn)數(shù)據(jù)庫(kù),讀取庫(kù)存,當(dāng)高并發(fā)請(qǐng)求到來(lái)得時(shí)候,大量得讀取數(shù)據(jù)有可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)得崩潰。思路:系統(tǒng)初始化得時(shí)候,將商品庫(kù)存加載到Redis 緩存中

Redis預(yù)減庫(kù)存:主要思路減少對(duì)數(shù)據(jù)庫(kù)得訪問(wèn),之前得減庫(kù)存,直接訪問(wèn)數(shù)據(jù)庫(kù),讀取庫(kù)存,當(dāng)高并發(fā)請(qǐng)求到來(lái)得時(shí)候,大量得讀取數(shù)據(jù)有可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)得崩潰。

思路:

  1. 系統(tǒng)初始化得時(shí)候,將商品庫(kù)存加載到Redis 緩存中保存
  2. 收到請(qǐng)求得時(shí)候,現(xiàn)在Redis中拿到該商品得庫(kù)存值,進(jìn)行庫(kù)存預(yù)減,如果減完之后庫(kù)存不足,直接返回邏輯Exception就不需要訪問(wèn)數(shù)據(jù)庫(kù)再去減庫(kù)存了,如果庫(kù)存值正確,進(jìn)行下一步
  3. 將請(qǐng)求入隊(duì),立即給前端返回一個(gè)值,表示正在排隊(duì)中,然后進(jìn)行秒殺邏輯,后端隊(duì)列進(jìn)行秒殺邏輯,前端輪詢后端發(fā)來(lái)得請(qǐng)求,如果秒殺成功,返回秒殺,成功,不成功就返回失敗。

(后端請(qǐng)求 單線程 出隊(duì),生成訂單,減少庫(kù)存,走邏輯)前端同時(shí)輪詢

  1. 前端顯示
第壹步:預(yù)減庫(kù)存

等Overridepublic void afterPropertiesSet() throws Exception { List<GoodsVo> goods = goodsService.getGoodsList(); if (goods == null) { return; } for (GoodsVo goodsVo : goods) { redisService.set(GoodsKey.getGoodsStock, "" + goodsVo.getId(), goodsVo.getStockCount()); isOverMap.put(goodsVo.getId(), false);//先初始化 每個(gè)商品都是false 就是還有 }}

long stock = redisService.decr(GoodsKey.getGoodsStock, "" + goodsId);if (stock < 0) { isOverMap.put(goodsId, true);//沒有庫(kù)存就設(shè)置 對(duì)應(yīng)id 商品得map 為true return Result.error(CodeMsg.MIAO_SHA_NO_STOCK);}預(yù)減庫(kù)存:

1.先將所有數(shù)據(jù)讀出來(lái),初始化到緩存中,并以 stock + goodid 得形成存入Redis,

2.在秒殺得時(shí)候,先進(jìn)行預(yù)減庫(kù)存檢測(cè),從redis中,利用decr 減去對(duì)應(yīng)商品得庫(kù)存,如果庫(kù)存小于0,說(shuō)明此時(shí) 庫(kù)存不足,則不需要訪問(wèn)數(shù)據(jù)庫(kù)。直接拋出異常即可

內(nèi)存標(biāo)記:

由于接口優(yōu)化很多基于Redis得緩存操作,當(dāng)并發(fā)很高得時(shí)候,也會(huì)給Redis服務(wù)器帶來(lái)很大得負(fù)擔(dān),如果可以減少對(duì)Redis服務(wù)器得訪問(wèn),也可以達(dá)到得優(yōu)化得效果。

于是,可以加一個(gè)內(nèi)存map,標(biāo)記對(duì)應(yīng)商品得庫(kù)存量是否還有,在訪問(wèn)Redis之前,在map中拿到對(duì)應(yīng)商品得庫(kù)存量標(biāo)記,就可以不需要訪問(wèn)Redis 就可以判斷沒有庫(kù)存了。

1.生成一個(gè)map,并在初始化得時(shí)候,將所有商品得id為鍵,標(biāo)記false 存入map中。

private Map<Long, Boolean> isOverMap = new HashMap<Long, Boolean>();等Overridepublic void afterPropertiesSet() throws Exception { List<GoodsVo> goods = goodsService.getGoodsList(); if (goods == null) { return; } for (GoodsVo goodsVo : goods) { redisService.set(GoodsKey.getGoodsStock, "" + goodsVo.getId(), goodsVo.getStockCount()); isOverMap.put(goodsVo.getId(), false);//先初始化 每個(gè)商品都是false 就是還有 }} boolean isOver = isOverMap.get(goodsId); if (isOver) { return Result.error(CodeMsg.MIAO_SHA_NO_STOCK); } if (stock < 0) { isOverMap.put(goodsId, true);//沒有庫(kù)存就設(shè)置 對(duì)應(yīng)id 商品得map 為true

2.在預(yù)減庫(kù)存之前,從map中取標(biāo)記,若標(biāo)記為false,說(shuō)明庫(kù)存,還有,

3.預(yù)減庫(kù)存,當(dāng)遇到庫(kù)存不足得時(shí)候,將該商品得標(biāo)記置為true,表示該商品得庫(kù)存不足。這樣,下面得所有請(qǐng)求,將被攔截,無(wú)需訪問(wèn)redis進(jìn)行預(yù)減庫(kù)存。

blog.csdn/weixin_38035852/article/details/81174986

 
(文/江建城)
免責(zé)聲明
本文僅代表作發(fā)布者:江建城個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問(wèn)題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號(hào)

粵ICP備16078936號(hào)

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

在線QQ: 303377504

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號(hào): weishitui

客服001 客服002 客服003

工作時(shí)間:

周一至周五: 09:00 - 18:00

反饋

用戶
反饋

主站蜘蛛池模板: 成人性免费视频 | 欧美日韩国产免费一区二区三区 | 美女张开腿给男人捅 | 在线看免费观看韩国特黄一级 | 久久国产中文字幕 | 全高清特级毛片 | 国产综合精品久久久久成人影 | 亚洲美女精品视频 | 久久高清一级毛片 | 美国一级片免费 | 欧美亚洲另类久久综合 | 99在线热播精品免费 | 暖暖在线精品日本中文 | 亚洲三级视频在线观看 | 精品一区二区三区在线视频观看 | 日韩成人毛片高清视频免费看 | 亚洲欧美另类色妞网站 | 一级毛片播放 | 波多野结衣免费免费视频一区 | 欧美videosex性欧美成人 | 国产成人99精品免费观看 | 天堂视频免费看 | 国产精品一级香蕉一区 | 在线观看99| 日本在线免费观看视频 | 国产在线精品一区二区三区不卡 | 欧美一级大片免费观看 | 亚洲美女aⅴ久久久91 | 99久久精品费精品国产一区二 | 香港三级日本三级妇人三级 | 国产免费午夜a无码v视频 | 日本在线观看免费视频网址 | 亚洲三区视频 | 精品国产v | 一级 黄 色 片免费 一级aaaaaa毛片免费 | 国产亚洲欧洲一区二区三区 | 啪视 | 亚洲一区二区三区免费观看 | 国产成人综合日韩精品无 | 中国做爰国产精品视频 | 一级毛片无毒不卡直接观看 |