最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

redis數(shù)據(jù)一致性之延時(shí)雙刪策略詳解

 更新時(shí)間:2023年09月05日 11:11:27   作者:無形風(fēng)  
在使用redis時(shí),需要保持redis和數(shù)據(jù)庫數(shù)據(jù)的一致性,最流行的解決方案之一就是延時(shí)雙刪策略,今天我們就來詳細(xì)刨析一下,需要的朋友可以參考下

在使用redis時(shí),需要保持redis和數(shù)據(jù)庫數(shù)據(jù)的一致性,最流行的解決方案之一就是延時(shí)雙刪策略,今天我們就來詳細(xì)刨析一下

注意:要知道經(jīng)常修改的數(shù)據(jù)表不適合使用redis,因?yàn)殡p刪策略執(zhí)行的結(jié)果是把redis中保存的那條數(shù)據(jù)刪除了,以后的查詢就都會(huì)去查詢數(shù)據(jù)庫。所以redis使用的是讀遠(yuǎn)遠(yuǎn)大于改的數(shù)據(jù)緩存。

1,首先要理解在并發(fā)環(huán)境下redis數(shù)據(jù)一致性的問題所在

在多線程并發(fā)情況下,假設(shè)有兩個(gè)數(shù)據(jù)庫修改請求,為保證數(shù)據(jù)庫與redis的數(shù)據(jù)一致性,
修改請求的實(shí)現(xiàn)中需要修改數(shù)據(jù)庫后,級聯(lián)修改redis中的數(shù)據(jù)。
請求一:1.1修改數(shù)據(jù)庫數(shù)據(jù)		1.2 修改redis數(shù)據(jù)
請求二:2.1修改數(shù)據(jù)庫數(shù)據(jù)		2.2 修改redis數(shù)據(jù)
并發(fā)情況下就會(huì)存在1.1 ---> 2.1 ---> 2.2 ---> 1.2的情況 
(一定要理解線程并發(fā)執(zhí)行多組原子操作執(zhí)行順序是可能存在交叉現(xiàn)象的)
此時(shí)存在的問題就是:
	1.1修改數(shù)據(jù)庫的數(shù)據(jù)最終保存到了redis中,2.1在1.1之后也修改了數(shù)據(jù)庫數(shù)據(jù)。
	此時(shí)出現(xiàn)了redis中數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)不一致的情況,在后面的查詢過程中就會(huì)長時(shí)間去先查redis,
	從而出現(xiàn)查詢到的數(shù)據(jù)并不是數(shù)據(jù)庫中的真實(shí)數(shù)據(jù)的嚴(yán)重問題。
問題解決:
	修改數(shù)據(jù)庫級聯(lián)修改redis數(shù)據(jù)改為  修改數(shù)據(jù)庫數(shù)據(jù)后級聯(lián)刪除redis數(shù)據(jù)
	至于是先執(zhí)行1.2的redis刪除,還是限制性2.2的redis刪除,無關(guān)緊要。
	結(jié)果都是redis中數(shù)據(jù)已被刪除。之后的查詢就會(huì)由于redis中沒有數(shù)據(jù)而去查數(shù)據(jù)庫,
	此時(shí)即不會(huì)存在查詢到的數(shù)據(jù)和數(shù)據(jù)庫的數(shù)據(jù)不一致的情況。

2,上面詳解了redis數(shù)據(jù)一致性的問題所在,并提供了單刪策略來解決問題但此時(shí)依然存在比較嚴(yán)重的問題。

上面的單刪策略情況如下:
修改請求的實(shí)現(xiàn)中需要修改數(shù)據(jù)庫后,級聯(lián)刪除redis中的數(shù)據(jù)。
請求一:1.1修改數(shù)據(jù)庫數(shù)據(jù)		1.2 刪除redis數(shù)據(jù)
請求二:2.1修改數(shù)據(jù)庫數(shù)據(jù)		2.2 刪除redis數(shù)據(jù)
假設(shè)現(xiàn)在并發(fā)存在一個(gè)查詢請求
請求三:3.1查詢r(jià)edis中數(shù)據(jù)   3.2查詢數(shù)據(jù)庫數(shù)據(jù)    3.3 新查到的數(shù)據(jù)寫入redis
(一定要理解帶redis的查詢請求實(shí)現(xiàn)邏輯,先查redis,數(shù)據(jù)不存在查數(shù)據(jù)庫,
			查到的數(shù)據(jù)寫入redis以便以后的查詢不去直接查數(shù)據(jù)庫)
此時(shí)并發(fā)情況下就會(huì)存在1.1 ---> 1.2 ---> 3.1 ---> 3.2 ---> 2.1 ---> 2.2 ---> 3.3的情況 
此時(shí)存在的問題就是:
	此時(shí)數(shù)據(jù)庫中的數(shù)據(jù)保存的是2.1修改后的數(shù)據(jù),而redis中保存的數(shù)據(jù)是3.2中在1.1修改數(shù)據(jù)后的結(jié)果,
	此時(shí)出現(xiàn)了redis中數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)不一致的情況,在后面的查詢過程中就會(huì)長時(shí)間去先查redis,
	從而出現(xiàn)查詢到的數(shù)據(jù)并不是數(shù)據(jù)庫中的真實(shí)數(shù)據(jù)的嚴(yán)重問題。

3,上面刨析到了單刪策略來解決redis數(shù)據(jù)一致性存在的問題,下面我們來說雙刪策略

上面的單刪策略存在問題的情況如下:
請求一:1.1修改數(shù)據(jù)庫數(shù)據(jù)		1.2 刪除redis數(shù)據(jù)
請求二:2.1修改數(shù)據(jù)庫數(shù)據(jù)		2.2 刪除redis數(shù)據(jù)
請求三:3.1查詢r(jià)edis中數(shù)據(jù)   3.2查詢數(shù)據(jù)庫數(shù)據(jù)    3.3 新查到的數(shù)據(jù)寫入redis
添加延時(shí)雙刪策略后的情況
請求一:1.1修改數(shù)據(jù)庫數(shù)據(jù)		1.2 刪除redis數(shù)據(jù)    1.3 延時(shí)3--5s再去刪除redis中數(shù)據(jù)
請求二:2.1修改數(shù)據(jù)庫數(shù)據(jù)		2.2 刪除redis數(shù)據(jù)    2.3 延時(shí)3--5s再去刪除redis中數(shù)據(jù)
請求三:3.1查詢r(jià)edis中數(shù)據(jù)     3.2 查詢數(shù)據(jù)庫數(shù)據(jù)    3.3 新查到的數(shù)據(jù)寫入redis
雙刪策略為什么能解決問題:
因?yàn)榇嬖诹搜訒r(shí)時(shí)間,故1.3或2.3 一定是最后執(zhí)行的一步操作(并發(fā)中的延時(shí)一定要理解)
延時(shí)的根本目的就是為了讓程序先把3.3執(zhí)行完,再去刪除redis

4,如何實(shí)現(xiàn)延時(shí)3–5s的操作

比較好的:   項(xiàng)目整合quartz等定時(shí)任務(wù)框架,去實(shí)現(xiàn)延時(shí)3--5s再去執(zhí)行最后一步任務(wù)
比較一般的:  創(chuàng)建線程池,線程池中拿一個(gè)線程,線程體中延時(shí)3-5s再去執(zhí)行最后一步任務(wù)(不能忘了啟動(dòng)線程)
比較差的:   單獨(dú)創(chuàng)建一個(gè)線程去實(shí)現(xiàn)延時(shí)執(zhí)行

到此這篇關(guān)于redis數(shù)據(jù)一致性之延時(shí)雙刪詳解的文章就介紹到這了,更多相關(guān)redis延時(shí)雙刪內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Windows下Redis安裝配置教程

    Windows下Redis安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了Windows下Redis安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Redis總結(jié)筆記(二):C#連接Redis簡單例子

    Redis總結(jié)筆記(二):C#連接Redis簡單例子

    這篇文章主要介紹了Redis總結(jié)筆記(二):C#連接Redis簡單例子,需要的朋友可以參考下
    2015-01-01
  • Redis優(yōu)雅地實(shí)現(xiàn)延遲隊(duì)列的方法分享

    Redis優(yōu)雅地實(shí)現(xiàn)延遲隊(duì)列的方法分享

    Redisson是Redis服務(wù)器上的分布式可伸縮Java數(shù)據(jù)結(jié)構(gòu),這篇文中主要為大家介紹了Redisson實(shí)現(xiàn)的優(yōu)雅的延遲隊(duì)列的方法,需要的可以參考一下
    2023-02-02
  • 手把手教你使用redis實(shí)現(xiàn)排行榜功能

    手把手教你使用redis實(shí)現(xiàn)排行榜功能

    使用Redis中有序集合的特性來實(shí)現(xiàn)排行榜是又好又快的選擇,一般排行榜都是有實(shí)效性的,比如“用戶積分榜”,下面這篇文章主要給大家介紹了關(guān)于使用redis實(shí)現(xiàn)排行榜功能的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • redis stream 實(shí)現(xiàn)消息隊(duì)列的實(shí)踐

    redis stream 實(shí)現(xiàn)消息隊(duì)列的實(shí)踐

    本文主要介紹了redis stream 實(shí)現(xiàn)消息隊(duì)列的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Redis腦裂導(dǎo)致數(shù)據(jù)丟失的解決

    Redis腦裂導(dǎo)致數(shù)據(jù)丟失的解決

    本文主要介紹了Redis腦裂導(dǎo)致數(shù)據(jù)丟失的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Redis高性能Key-Value存儲(chǔ)與緩存利器常見解決方案

    Redis高性能Key-Value存儲(chǔ)與緩存利器常見解決方案

    Redis是高性能內(nèi)存Key-Value存儲(chǔ)系統(tǒng),支持豐富數(shù)據(jù)類型與持久化方案(RDB/AOF),本文給大家介紹Redis高性能Key-Value存儲(chǔ)與緩存利器常見解決方案,感興趣的朋友一起看看吧
    2025-09-09
  • redis keys與scan命令的區(qū)別說明

    redis keys與scan命令的區(qū)別說明

    這篇文章主要介紹了redis keys與scan命令的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 在Mac OS上安裝Vagrant和Docker的教程

    在Mac OS上安裝Vagrant和Docker的教程

    這篇文章主要介紹了在Mac OS上安裝Vagrant和Docker的教程,并安裝和設(shè)置Postgres和Elasticsearch和Redis,需要的朋友可以參考下
    2015-04-04
  • 使用redis-cli命令實(shí)現(xiàn)redis crud操作過程

    使用redis-cli命令實(shí)現(xiàn)redis crud操作過程

    線上Redis key需刪除但無法直連客戶端,可用redis-cli命令操作,步驟包括定位服務(wù)、登錄、選擇數(shù)據(jù)庫及執(zhí)行DEL命令,適用于無圖形工具的環(huán)境
    2025-08-08

最新評論

永安市| 习水县| 获嘉县| 盘锦市| 孙吴县| 邓州市| 星子县| 肥东县| 吉安县| 东城区| 达州市| 嵊泗县| 金坛市| 永昌县| 乐陵市| 高邑县| 黄梅县| 北京市| 珠海市| 克什克腾旗| 集安市| 澄城县| 平果县| 屯留县| 新乡县| 神木县| 正镶白旗| 富宁县| 湘乡市| 桃园市| 丰城市| 贵定县| 文成县| 望城县| 仁布县| 昔阳县| 诏安县| 兴宁市| 广元市| 普兰县| 旬阳县|