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

redis緩存一致性延時雙刪代碼實現(xiàn)方式

 更新時間:2022年08月26日 14:13:23   作者:彼的貓  
這篇文章主要介紹了redis緩存一致性延時雙刪代碼實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

redis緩存一致性延時雙刪代碼

不廢話、、、如下

1、自定義注解

/**
*@author caoyue
*延時雙刪
**/
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.METHOD)
public @interface ClearCache {
? ? boolean open() default true;
}

2、刪除邏輯

/**
 * @author caoyue
 */
@Component
@Aspect
@Slf4j
public class DoubleClearCacheAop {
    @Autowired
    private UserService userService;
	//聲明一個用于延時的定時線程池代替線程sleep
    ScheduledExecutorService task = new ScheduledThreadPoolExecutor(10, new BasicThreadFactory.
            Builder().namingPattern("clearCache-schedule-pool-%d").build());
    @Pointcut("@annotation(com.inspur.henan.uac.modules.open.util.ClearCache)")
    private void clearCachePoint() {
    }
    @Around("clearCachePoint()")
    public Object clearCacheAop(ProceedingJoinPoint proceeds) throws Throwable {
        Method method = ((MethodSignature) proceeds.getSignature()).getMethod();
        ClearCache annotation = method.getAnnotation(ClearCache.class);
        Object proceed = null;
        //如果清除注解開啟了
        if (annotation.open()) {
        	//上下文獲取信息
            IPubUser user = MsySecurityContextHolder.getUser();
            if (Objects.nonNull(user)) {
            	//執(zhí)行清除緩存的動作
                userService._clearCache(user);
                //業(yè)務(wù)處理
                proceed = proceeds.proceed();
                //延時兩秒后再刪
                task.schedule(() -> {
                    userService._clearCache(user);
                    if (log.isInfoEnabled()) {
                        log.info(Thread.currentThread().getName() + ":double delete cache completed");
                    }
                }, 2L, TimeUnit.SECONDS);
            } else {
                proceed = proceeds.proceed();
            }
        }
        return proceed;
    }
}

redis緩存延遲雙刪問題

高并發(fā)場景使用redis作為緩存存儲數(shù)據(jù),當(dāng)數(shù)據(jù)更新時,如何保證緩存一致性,

延遲雙刪的策略:

先刪除緩存,然后更新數(shù)據(jù)庫數(shù)據(jù),休眠sleep,最后再次刪除緩存數(shù)據(jù)。

休眠的時間略微大于從數(shù)據(jù)庫查詢數(shù)據(jù)的時間。

當(dāng)讀寫分離時,考慮到主從數(shù)據(jù)同步延遲,休眠時間約1s。

休眠時間不能太大,否則會影響更新的速度。 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Redis中三種特殊數(shù)據(jù)類型命令詳解

    Redis中三種特殊數(shù)據(jù)類型命令詳解

    Geospatial是地理位置類型,我們可以用來查詢附近的人、計算兩人之間的距離等,這篇文章主要介紹了Redis中三種特殊數(shù)據(jù)類型命令詳解,需要的朋友可以參考下
    2024-05-05
  • Redis連接超時異常的處理方法

    Redis連接超時異常的處理方法

    這篇文章主要給大家介紹了關(guān)于Redis連接超時異常的處理方法,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java Socket實現(xiàn)Redis客戶端的詳細(xì)說明

    Java Socket實現(xiàn)Redis客戶端的詳細(xì)說明

    socket編程是一門技術(shù),它主要是在網(wǎng)絡(luò)通信中經(jīng)常用到.這篇文章主要介紹了如何用Java Socket實現(xiàn)一個簡單的Redis客戶端,需要的朋友可以參考下
    2021-05-05
  • Redis中key過期策略的實現(xiàn)

    Redis中key過期策略的實現(xiàn)

    Key的過期機(jī)制是Redis保持高可用性的重要策略,過期策略分為惰性過期和定期過期,惰性過期在每次訪問key時檢查是否過期,定期過期則由serverCron方法定時清理過期key,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2024-09-09
  • 一文了解發(fā)現(xiàn)并解決Redis熱key與大key問題

    一文了解發(fā)現(xiàn)并解決Redis熱key與大key問題

    熱key是服務(wù)端的常見問題,本文主要介紹Redis熱key與大key問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Redis分布式鎖python-redis-lock使用方法

    Redis分布式鎖python-redis-lock使用方法

    這篇文章主要介紹了Redis分布式鎖python-redis-lock使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 淺談Redis的事件驅(qū)動模型

    淺談Redis的事件驅(qū)動模型

    本文主要介紹了淺談Redis的事件驅(qū)動模型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • redis哨兵模式分布式鎖實現(xiàn)與實踐方式(redisson)

    redis哨兵模式分布式鎖實現(xiàn)與實踐方式(redisson)

    這篇文章主要介紹了redis哨兵模式分布式鎖實現(xiàn)與實踐方式(redisson),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Centos7安裝redis的超詳細(xì)步驟教程

    Centos7安裝redis的超詳細(xì)步驟教程

    Redis是當(dāng)前比較熱門的NOSQL系統(tǒng)之一,它是一個key-value存儲系統(tǒng),下面這篇文章主要介紹了Centos7安裝redis的超詳細(xì)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Redis應(yīng)用之簽到的使用

    Redis應(yīng)用之簽到的使用

    在很多時候,我們遇到用戶簽到的場景,本文主要介紹了Redis應(yīng)用之簽到的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05

最新評論

延安市| 宁波市| 毕节市| 大安市| 京山县| 承德市| 永安市| 永安市| 礼泉县| 龙泉市| 井研县| 谢通门县| 大同市| 建水县| 福建省| 中江县| 丁青县| 新干县| 湄潭县| 饶河县| 康马县| 洪雅县| 元朗区| 林甸县| 安福县| 台北市| 延庆县| 江达县| 金寨县| 方山县| 富源县| 浠水县| 嘉善县| 平谷区| 蒲江县| 襄汾县| 广州市| 庆元县| 莫力| 江门市| 兴国县|