国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
#快取為啥是刪除,而不是更新?
延時(shí)雙刪是什麼?
採(cǎi)用反證法
結(jié)論
思考2:為啥是延時(shí)
首頁(yè) 資料庫(kù) Redis 原因分析之redis快取延時(shí)雙刪

原因分析之redis快取延時(shí)雙刪

Aug 24, 2022 pm 05:34 PM
redis

推薦學(xué)習(xí):Redis影片教學(xué)

#快取為啥是刪除,而不是更新?

如果是更新,有分散式事務(wù)問(wèn)題,可能出現(xiàn)修改了緩存,資料庫(kù)修改失敗的情況。只是刪除快取的話,就算資料庫(kù)修改失敗,下次查詢會(huì)直接取資料庫(kù)的數(shù)據(jù),也不會(huì)出現(xiàn)髒數(shù)據(jù)。

延時(shí)雙刪是什麼?

就是在增刪改某實(shí)體類別的時(shí)候,要對(duì)該實(shí)體類別的快取進(jìn)行清空,清空的位置在資料庫(kù)操作方法的前後。

採(cǎi)用反證法

只先刪除

????

原因分析之redis快取延時(shí)雙刪

只後刪除

原因分析之redis快取延時(shí)雙刪

結(jié)論

因此得出前刪和後刪都有問(wèn)題。所以採(cǎi)用延時(shí)雙刪的策略

思考2:為啥是延時(shí)

依然是反證法。下圖這情況是雙刪依然存在舊快取的情況,延時(shí)是確保 修改資料庫(kù)-》清空快取前,其他交易的變更快取作業(yè)已經(jīng)執(zhí)行完。

原因分析之redis快取延時(shí)雙刪

補(bǔ)充:為什麼要延遲雙刪,來(lái)保證快取一致性

##為什麼要延遲雙刪,來(lái)確??烊∫恢滦?p>

    在修改資料庫(kù)資料前,需要先刪除一次redis:此時(shí)是為了確保在資料庫(kù)資料修改和redis資料被刪除的間隔時(shí)間內(nèi),如有命中,保證此數(shù)據(jù)也不存在redis中。如果沒(méi)有這次刪除,當(dāng)資料庫(kù)資料已經(jīng)被修改了,但還是可以從redis中讀出舊數(shù)據(jù),導(dǎo)致數(shù)據(jù)不一致。
  • 第二次刪除則是在修改資料庫(kù)資料後,此時(shí)需要再次刪除redis中對(duì)應(yīng)資料一次,這次是為了刪除第一次redis刪除和資料庫(kù)資料修改之間,如果有請(qǐng)求,那麼舊資料又會(huì)重新快取到redis中,然而資料在資料庫(kù)中接下來(lái)就會(huì)被修改,如果沒(méi)有這次刪除,redis中則會(huì)存在資料庫(kù)中舊的資料。
  • 那麼第二次為什麼需要在資料庫(kù)修改後延遲一定時(shí)間再刪除redis呢?
  • 為了等待之前的一次讀取資料庫(kù),並等待其資料寫(xiě)入到緩存,最後刪除這次髒數(shù)據(jù),所以是一次資料從資料庫(kù)中發(fā)送到伺服器快取寫(xiě)入的時(shí)間

原因分析之redis快取延時(shí)雙刪

但是延遲雙刪,所延遲的時(shí)間非常的難以確定,所以並不推薦延遲雙刪

根據(jù)綜合考慮,即使先修改資料庫(kù),在刪除緩存,有一定的時(shí)間會(huì)導(dǎo)致讀取到舊數(shù)據(jù),這通常是可以被忍受的。

只要及時(shí)將快取刪除,其他執(zhí)行緒就可以讀取到最新的值。

同時(shí)為了確??烊∫欢〞?huì)被刪除,可以採(cǎi)用mq,來(lái)確??烊?huì)被刪除

#如果在mq中訊息沒(méi)有重複消費(fèi),還會(huì)交由給其他消費(fèi)者消費(fèi)(將快取刪除)

推薦學(xué)習(xí):

Redis影片教學(xué)

以上是原因分析之redis快取延時(shí)雙刪的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

laravel8 的優(yōu)化點(diǎn) laravel8 的優(yōu)化點(diǎn) Apr 18, 2025 pm 12:24 PM

Laravel 8 針對(duì)性能優(yōu)化提供了以下選項(xiàng):緩存配置:使用 Redis 緩存驅(qū)動(dòng)、緩存門面、緩存視圖和頁(yè)面片段。數(shù)據(jù)庫(kù)優(yōu)化:建立索引、使用查詢範(fàn)圍、使用 Eloquent 關(guān)係。 JavaScript 和 CSS 優(yōu)化:使用版本控制、合併和縮小資產(chǎn)、使用 CDN。代碼優(yōu)化:使用 Composer 安裝包、使用 Laravel 助手函數(shù)、遵循 PSR 標(biāo)準(zhǔn)。監(jiān)控和分析:使用 Laravel Scout、使用 Telescope、監(jiān)控應(yīng)用程序指標(biāo)。

如何利用Redis緩存方案高效實(shí)現(xiàn)產(chǎn)品排行榜列表的需求? 如何利用Redis緩存方案高效實(shí)現(xiàn)產(chǎn)品排行榜列表的需求? Apr 19, 2025 pm 11:36 PM

Redis緩存方案如何實(shí)現(xiàn)產(chǎn)品排行榜列表的需求?在開(kāi)發(fā)過(guò)程中,我們常常需要處理排行榜的需求,例如展示一個(gè)?...

Laravel 最佳擴(kuò)展包推薦:2024 年必備工具 Laravel 最佳擴(kuò)展包推薦:2024 年必備工具 Apr 30, 2025 pm 02:18 PM

2024年必備的Laravel擴(kuò)展包包括:1.LaravelDebugbar,用於監(jiān)控和調(diào)試代碼;2.LaravelTelescope,提供詳細(xì)的應(yīng)用監(jiān)控;3.LaravelHorizon,管理Redis隊(duì)列任務(wù)。這些擴(kuò)展包能提升開(kāi)發(fā)效率和應(yīng)用性能。

Spring Boot中OAuth2Authorization對(duì)象Redis緩存失敗怎麼辦? Spring Boot中OAuth2Authorization對(duì)象Redis緩存失敗怎麼辦? Apr 19, 2025 pm 08:03 PM

SpringBoot中使用Redis緩存OAuth2Authorization對(duì)像在SpringBoot應(yīng)用中,使用SpringSecurityOAuth2AuthorizationServer...

Laravel 環(huán)境搭建與基礎(chǔ)配置(Windows/Mac/Linux) Laravel 環(huán)境搭建與基礎(chǔ)配置(Windows/Mac/Linux) Apr 30, 2025 pm 02:27 PM

在不同操作系統(tǒng)上搭建Laravel環(huán)境的步驟如下:1.Windows:使用XAMPP安裝PHP和Composer,配置環(huán)境變量,安裝Laravel。 2.Mac:使用Homebrew安裝PHP和Composer,安裝Laravel。 3.Linux:使用Ubuntu更新系統(tǒng),安裝PHP和Composer,安裝Laravel。每個(gè)系統(tǒng)的具體命令和路徑有所不同,但核心步驟一致,確保順利搭建Laravel開(kāi)發(fā)環(huán)境。

REDIS的角色:探索數(shù)據(jù)存儲(chǔ)和管理功能 REDIS的角色:探索數(shù)據(jù)存儲(chǔ)和管理功能 Apr 22, 2025 am 12:10 AM

Redis在數(shù)據(jù)存儲(chǔ)和管理中扮演著關(guān)鍵角色,通過(guò)其多種數(shù)據(jù)結(jié)構(gòu)和持久化機(jī)製成為現(xiàn)代應(yīng)用的核心。 1)Redis支持字符串、列表、集合、有序集合和哈希表等數(shù)據(jù)結(jié)構(gòu),適用於緩存和復(fù)雜業(yè)務(wù)邏輯。 2)通過(guò)RDB和AOF兩種持久化方式,Redis確保數(shù)據(jù)的可靠存儲(chǔ)和快速恢復(fù)。

centos redis如何配置慢查詢?nèi)照I centos redis如何配置慢查詢?nèi)照I Apr 14, 2025 pm 04:54 PM

在CentOS系統(tǒng)上啟用Redis慢查詢?nèi)照I,提升性能診斷效率。以下步驟將指導(dǎo)您完成配置:第一步:定位並編輯Redis配置文件首先,找到Redis配置文件,通常位於/etc/redis/redis.conf。使用以下命令打開(kāi)配置文件:sudovi/etc/redis/redis.conf第二步:調(diào)整慢查詢?nèi)照I參數(shù)在配置文件中,找到並修改以下參數(shù):#慢查詢閾值(毫秒)slowlog-log-slower-than10000#慢查詢?nèi)照I最大條目數(shù)slowlog-max-len

在多節(jié)點(diǎn)環(huán)境下,如何確保Spring Boot的@Scheduled定時(shí)任務(wù)只在一個(gè)節(jié)點(diǎn)上執(zhí)行? 在多節(jié)點(diǎn)環(huán)境下,如何確保Spring Boot的@Scheduled定時(shí)任務(wù)只在一個(gè)節(jié)點(diǎn)上執(zhí)行? Apr 19, 2025 pm 10:57 PM

SpringBoot定時(shí)任務(wù)在多節(jié)點(diǎn)環(huán)境下的優(yōu)化方案在開(kāi)發(fā)Spring...

See all articles