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

原來Sync.Once還能這么用

開發 前端
緩存擊穿一般代指熱點key緩存失效(到期|刪了),同一時刻大量對熱點key的并發請求。緩存找不到數據,所有請求都打入到DB層。此時,身為開發的你,明天和意外就不知道哪個先到了。

[[420150]]

介紹

sync.Once估計大家都不陌生,官方介紹中,

Once is an object that will perform exactly one action

正是因為這個特性,Once常常被用于單例對象的初始化場景。

也正是因為這個特性,其實它還能做一些其他的事情。

緩存擊穿

日常背誦八股文,我相信你們對緩存擊穿這個詞特別熟悉。

緩存擊穿一般代指熱點key緩存失效(到期|刪了),同一時刻大量對熱點key的并發請求。緩存找不到數據,所有請求都打入到DB層。此時,身為開發的你,明天和意外就不知道哪個先到了。

為了防止這種情況發生,針對相同key的請求,只需要一個請求(A)到達DB層取數據,其他請求等待A通知就行了。

就像這樣,

圖片來源:[1]

singleflight

Go里有很多防緩存擊穿的工具,比如singleflight庫。

通過上面簡單的代碼大概能看出,其實就是對key做了緩存。

把一個key對應call結構存儲在map中。保證只有一個key真正執行fn()服務 ,其他請求則通過sync.waitGroup的wait等待結果。

至于g.docall(c,key,fn),

當帶著全村人希望的那個請求,獲取到數據,給對應key的call賦值,最終執行done,通知等待這個key全村的村民獲取數據。

代碼并不復雜。

自定義singleflight

我們也可以實現一個簡易版本的。

代碼整體不難,主要的點在于我們是通過通道來實現通知自家兄弟取數據。

最后,讓我們使用Once來達到同樣的效果,不然標題不白起了嘛。

上面核心代碼都寫出來了,實際開發中需要對請求資源做一些超時控制等操作。

總結

平常對Once的使用只停留在初始化工作上,而弱化了它的使用場景。對于其他工具也是一個道理,這就需要去積累和挖掘了。

附錄

[1]https://medium.com/codex/caching-system-stability-766bf5fff69f

https://blog.chuie.io/posts/synconce/

 

責任編輯:武曉燕 來源: 吳親強的深夜食堂
相關推薦

2024-06-05 11:06:22

Go語言工具

2023-06-06 08:28:58

Sync.OnceGolang

2023-03-28 08:20:07

場景sync.Once?系統

2010-01-20 10:37:48

Chrome瀏覽器

2019-12-30 09:51:35

Word設計模式軟件

2024-01-08 13:40:00

并發安全? 數量

2024-10-17 16:55:08

2022-01-04 08:00:48

前端技術Esbuild

2022-06-07 08:55:04

Golang單例模式語言

2020-10-09 10:45:22

語言代碼數組

2022-10-28 19:19:11

ChromeNetwork網絡

2021-11-22 11:05:20

Vue 3setup前端

2019-03-28 11:07:56

Spring BootRedis緩存

2021-04-19 05:42:51

Mmap文件系統

2022-01-27 14:12:49

Python游戲腳本

2021-12-30 10:55:54

Python游戲腳本

2022-02-14 21:58:58

netstatLinuxWindows

2018-01-25 14:53:20

iPhone技巧刪除照片

2013-03-26 13:26:41

婚禮微信微信公眾賬號

2020-11-02 14:38:56

Java 深度學習模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频中文字幕 | 偷拍自拍第一页 | 中文字幕三区 | 国产大片一区 | 久久精品亚洲一区二区三区浴池 | 成人在线免费观看 | 久久精品成人 | 国产一区久久 | 国产欧美在线 | 中文字幕在线观看av | 国产精品a久久久久 | 日本色婷婷 | 国产欧美日韩一区二区三区在线观看 | 日韩在线高清 | 91中文字幕在线 | 久久精品一 | 欧美日本韩国一区二区 | 久草综合在线 | 亚洲成人三区 | 欧美二区三区 | 成人在线一区二区 | 91最新入口 | 国产欧美在线播放 | 青青久久| 亚洲福利一区 | www.黄色在线观看 | 欧美精品在线一区 | 国产亚洲一区二区精品 | 欧美美女一区二区 | 亚洲国产成人在线 | 国产在线一区二区三区 | 在线观看免费av网 | 亚洲三区在线 | 欧美精品久久久久久久久久 | 欧美电影免费观看高清 | 国内自拍视频在线观看 | 精品免费视频 | www国产成人免费观看视频,深夜成人网 | 四虎国产| 欧美日韩国产在线观看 | 91一区二区三区在线观看 |