自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大廠Redis熱點(diǎn)key解決之道

存儲(chǔ) 存儲(chǔ)軟件 Redis
在服務(wù)端讀數(shù)據(jù)進(jìn)行訪問(wèn)時(shí),往往會(huì)對(duì)數(shù)據(jù)進(jìn)行分片,此過(guò)程中會(huì)在某一主機(jī) Server 上對(duì)相應(yīng)的 Key 進(jìn)行訪問(wèn),當(dāng)訪問(wèn)超過(guò) Server 極限時(shí),就會(huì)導(dǎo)致熱點(diǎn) Key 問(wèn)題。

[[390072]]

1 熱點(diǎn)key產(chǎn)生原因

1.1 消費(fèi)的數(shù)據(jù)>>>生產(chǎn)的數(shù)據(jù)

  • 比如電商秒殺活動(dòng)、明星頭條微博
  • 大量發(fā)布、瀏覽的熱點(diǎn)新聞、熱點(diǎn)評(píng)論等讀多寫(xiě)少場(chǎng)景

1.2 分片的請(qǐng)求量突破單點(diǎn)性能極限

在服務(wù)端讀數(shù)據(jù)進(jìn)行訪問(wèn)時(shí),往往會(huì)對(duì)數(shù)據(jù)進(jìn)行分片,此過(guò)程中會(huì)在某一主機(jī) Server 上對(duì)相應(yīng)的 Key 進(jìn)行訪問(wèn),當(dāng)訪問(wèn)超過(guò) Server 極限時(shí),就會(huì)導(dǎo)致熱點(diǎn) Key 問(wèn)題。

2 熱點(diǎn)Key的危害

  • 流量過(guò)于集中,突破物理網(wǎng)卡的極限
  • 請(qǐng)求過(guò)多,緩存分片服務(wù)被打垮
  • 緩存擊穿

熱點(diǎn)Key請(qǐng)求某一主機(jī),超過(guò)該主機(jī)網(wǎng)卡上限時(shí),導(dǎo)致服務(wù)器中的其它服務(wù)無(wú)法正常進(jìn)行

=》

熱點(diǎn)過(guò)于集中,熱點(diǎn)Key緩存過(guò)多,超過(guò)目前緩存容量,導(dǎo)致緩存分片服務(wù)被打垮

=》

緩存服務(wù)崩潰,此時(shí)再有請(qǐng)求產(chǎn)生,會(huì)緩存到后臺(tái)DB,導(dǎo)致緩存擊穿,進(jìn)一步還會(huì)導(dǎo)致緩存雪崩。

3 解決方案

3.1 服務(wù)端緩存

Client會(huì)將請(qǐng)求發(fā)送到Server,而Server是多線程服務(wù),本地就具有一個(gè)基于Cache LRU策略的緩存空間。當(dāng)Server本身?yè)矶聲r(shí),Server不會(huì)將請(qǐng)求進(jìn)一步發(fā)送給DB而是直接返回,只有當(dāng)Server本身暢通時(shí)才會(huì)將Client請(qǐng)求發(fā)送至DB,并且將該數(shù)據(jù)重新寫(xiě)入緩存。此時(shí)就完成了緩存的訪問(wèn)跟重建。

缺陷

  • 緩存失效,多線程構(gòu)建緩存問(wèn)題
  • 緩存丟失,緩存構(gòu)建問(wèn)題
  • 臟讀

3.2 使用Memcache、Redis

在客戶端單獨(dú)部署緩存。使用過(guò)程中Client首先訪問(wèn)服務(wù)層,再對(duì)同一主機(jī)上的緩存層進(jìn)行訪問(wèn)。該種解決方案具有就近訪問(wèn)、速度快、沒(méi)有帶寬限制的優(yōu)點(diǎn)。

缺陷

  • 內(nèi)存資源浪費(fèi)
  • 臟讀

3.3 本地緩存

缺陷

  • 需要提前獲知熱點(diǎn)
  • 緩存容量有限
  • 不一致性時(shí)間增長(zhǎng)
  • 熱點(diǎn)Key遺漏

3.4 隨機(jī)后綴

使用Redis做緩存,那可以把一個(gè)熱點(diǎn)Key的緩存查詢壓力,分散到多個(gè)Redis節(jié)點(diǎn)。一個(gè)非常熱點(diǎn)的數(shù)據(jù),數(shù)據(jù)更新不是很頻繁,但是查詢非常頻繁,要保證基本保證100%的緩存命中率,該怎么處理?

核心思想:空間換時(shí)間,即同一熱點(diǎn)key保留2份:

  • 不帶后綴

不帶的后綴的有TTL

  • 帶后綴

帶后綴的沒(méi)有TTL

先查詢不帶后綴的,查詢不到,則:

  1. 后端查詢DB更新緩存
  2. 查詢帶后綴返回給調(diào)用方

這樣即可盡可能避免緩存擊穿。

參考

https://www.alibabacloud.com/help/zh/doc-detail/67252.htm

本文轉(zhuǎn)載自微信公眾號(hào)「JavaEdge」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系JavaEdge公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: JavaEdge
相關(guān)推薦

2009-10-10 15:26:11

資產(chǎn)管理

2022-01-14 08:08:11

Java依賴沖突

2022-04-21 09:26:41

FastDFS開(kāi)源分布式文件系統(tǒng)

2011-09-10 20:48:34

2016-11-10 18:57:19

雙十一高并發(fā)

2016-12-22 09:02:35

Linux誤刪文件

2009-05-05 14:30:19

虛擬化安全解決方案

2012-06-05 19:18:43

BYODAvayaAvaya IDE

2014-09-29 16:44:12

2012-02-13 10:30:18

2015-07-20 10:06:12

2011-08-18 14:23:52

Big Data

2011-01-19 13:12:27

2011-09-28 14:00:12

10086短信手機(jī)安全

2011-02-02 16:18:39

2018-07-06 14:30:23

WOT

2013-08-09 09:46:32

2018-08-01 14:00:49

MySQL數(shù)據(jù)庫(kù)PHP

2018-06-08 10:45:18

云計(jì)算成本評(píng)估應(yīng)用程序

2012-02-26 16:26:42

IBM大數(shù)據(jù)Hadoop
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)