[發明專利]緩存最終一致性更新方法有效
| 申請號: | 202110572535.6 | 申請日: | 2021-05-25 |
| 公開(公告)號: | CN113254465B | 公開(公告)日: | 2022-11-01 |
| 發明(設計)人: | 陳錦鵬;鮮青林;彭一亮;鄧文科;宋艦;曾輝 | 申請(專利權)人: | 四川虹魔方網絡科技有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/2455 |
| 代理公司: | 四川省成都市天策商標專利事務所(有限合伙) 51213 | 代理人: | 張秀敏 |
| 地址: | 621000 四川省綿陽*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 緩存 最終 一致性 更新 方法 | ||
本發明公開了一種緩存最終一致性更新方法,基于Redis隊列保證緩存最終一致性,具體包括:業務系統需要對Redi s程序中的數據進行修改時,首先從Redi s程序中獲取對應的緩存標志當前的incr值;業務系統將需要更新的數據進行拼裝,拼裝內容包括緩存信息、incr值以及緩存內容類型,然后對Redis程序指定隊列進行左入隊操作,既Redis程序的lpush操作;定時更新程序在定時任務觸發時,負責對Redis程序指定隊列進行右出隊操作,既Redis程序的brpop操作;判斷Redis程序的右出隊操作獲得的結果是否為空對緩存進行更新;本發明保證了數據庫中的數據和Redis程序中的數據的最終一致性。
技術領域
本發明涉及數據更新技術領域,特別是一種緩存最終一致性更新方法。
背景技術
隨著業務體量的不斷增加,對于服務器的需求量也不斷增大,因此相同功能的業務系統也不再只部署一臺服務器,而是會部署多個業務系統在不同的服務器上面。由于這些業務系統之間存在一些公用數據是放置在Redis程序中的,同時這些業務系統也會對Redis程序中的數據進行查詢和修改,因此可能會造成Redis程序中的數據與數據庫中的數據不一致。
發明內容
為解決現有技術中存在的問題,本發明的目的是提供一種緩存最終一致性更新方法,本發明利用Redis程序的隊列、Redis程序的incr命令以及隊列中的數據內容和數據標識,來保證數據庫中的數據和Redis程序中的數據的最終一致性。
為實現上述目的,本發明采用的技術方案是:一種緩存最終一致性更新方法,基于Redis隊列保證緩存最終一致性,具體包括以下步驟:
步驟1、業務系統需要對Redis程序中的數據進行修改時,首先從Redis程序中獲取對應的緩存標志當前的incr值;
步驟2、業務系統將需要更新的數據進行拼裝,拼裝內容包括緩存信息、incr值以及緩存內容類型,然后對Redis程序指定隊列進行左入隊操作,既Redis程序的lpush操作;
步驟3、定時更新程序在定時任務觸發時,負責對Redis程序指定隊列進行右出隊操作,既Redis程序的brpop操作;
步驟4、判斷Redis程序的右出隊操作獲得的結果是否為空:如果Redis程序的右出隊操作獲得的結果不為空,則對緩存進行更新;如果Redis程序的右出隊操作獲得的結果為空,則定時更新程序的該次執行結束,等待下一次喚醒。
作為本發明的進一步改進,所述步驟4中,如果Redis程序的右出隊操作獲得的結果不為空,對緩存進行更新具體包括以下步驟:
步驟4.1、定時更新程序解析出隊操作獲得的結果,獲取對應的緩存標志的incr值,判斷獲取的incr值和解析出隊操作獲得的結果的incr值是否一致,如果一致則說明該數據屬于最新的數據庫數據,則是屬于可以更新到Redis程序緩存中的內容;如果不一致,則說明該數據不是最新的,則應當跳過該次更新;
步驟4.2、當數據是屬于應當被更新到Redis程序中的緩存數據時,先更新Redis程序中的對應的緩存標志的incr值,既對緩存標志進行incr操作;
步驟4.3、將解析到的數據更新到Redis程序中去,替換之前的數據。
本發明的有益效果是:
本發明通過基于Redis隊列的功能、Redis程序的incr命令、隊列中的數據內容和數據標識以及一個專門用來負責更新Redis程序緩存的單線程定時更新程序,來保證Redis程序中的數據與數據庫中的屬于保持一致,解決最終一致性的問題。
附圖說明
圖1為本發明實施例1的流程框圖;
圖2為本發明實施例2的流程框圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川虹魔方網絡科技有限公司,未經四川虹魔方網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110572535.6/2.html,轉載請聲明來源鉆瓜專利網。





