国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot監(jiān)聽Redis 緩存過期(Key 失效)事件

這篇具有很好參考價值的文章主要介紹了springboot監(jiān)聽Redis 緩存過期(Key 失效)事件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、Redis配置修改

事件通過 Redis 的訂閱與發(fā)布功能(pub/sub)來進行分發(fā), 故需要開啟 redis 的事件監(jiān)聽與發(fā)布
修改 redis.conf 文件(Windows上是redis.windows.conf和redis.windows-service.conf)

notify-keyspace-events Ex

2、 redis的配置類開啟 redis過期監(jiān)聽


    /**
     * 開啟 redis過期監(jiān)聽
     * @param connectionFactory
     * @return
     */
    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        return container;
    }

3、定義 key過期監(jiān)聽器,繼承 KeyExpirationEventMessageListener

@Slf4j
@Component
public class RedisListener extends KeyExpirationEventMessageListener {

    public RedisListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }

    /**
     * 針對redis緩存數(shù)據失效事件,進行后續(xù)數(shù)據處理
     *
     * @param message
     * @param pattern
     */
    @Override
    public void onMessage(Message message, byte[] pattern) {
        /** key ,會把key返回,而不會將value返回*/
        String expiredKey = message.toString();
        log.info("過期緩存key:" + expiredKey);
        try {
            //登陸信息過期 若expiredKey以login開始則打印log
            if (expiredKey.startsWith("login")){
                log.info("---------redis 過期緩存處理");
            }

        } catch (Exception e) {
            log.info("---------redis 過期緩存處理 異常---------");
            e.printStackTrace();
        }

    }

}

通過開啟key過期的事件通知,當key過期時,會發(fā)布過期事件;我們定義key過期事件的監(jiān)聽器,當key過期時,就能收到回調通知。
注意:
  1)由于Redis key過期刪除是定時+惰性,當key過多時,刪除會有延遲,回調通知同樣會有延遲。
  2)回調通知是一次性的,沒有ack機制,若收到通知后處理失敗,將不再收到通知。
  3)回調通知只能拿到key,拿不到value。

使用場景:
  1)可以實現(xiàn)延時隊列
    消息作為key,將需要延遲的時間設置為key的TTL,當key過期時,在監(jiān)聽器收到通知,達到延遲的效果。文章來源地址http://www.zghlxwxcb.cn/news/detail-526190.html

到了這里,關于springboot監(jiān)聽Redis 緩存過期(Key 失效)事件的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Redis中Key的過期策略

    1.立即刪除: ????????在設置鍵的過期時間時,會創(chuàng)建一個回調事件,當過期時間達到時, 自動執(zhí)行回調事件去刪除鍵。 但是立即刪除對 cpu 是最不友好的。 2.惰性刪除: ????????惰性刪除是指某個鍵值過期后,此鍵值不會馬上被刪除,而是加入到 刪除字典( dict和e

    2024年02月15日
    瀏覽(22)
  • 【Java】SpringBoot實現(xiàn)事件監(jiān)聽(異步執(zhí)行)

    【Java】SpringBoot實現(xiàn)事件監(jiān)聽(異步執(zhí)行)

    ????????在Spring Boot中,事件監(jiān)聽是一種機制,通過該機制,你可以定義和觸發(fā)自定義的事件,以及在應用程序中注冊監(jiān)聽器來響應這些事件,提供了一種解耦的方式來處理應用程序中的事件。 文末有源碼gitee地址!拉取可進行測試。 事件監(jiān)聽的主要組件包括: 事件(E

    2024年04月17日
    瀏覽(20)
  • 監(jiān)聽redis過期業(yè)務處理

    配置類: 過期監(jiān)聽類?

    2024年02月06日
    瀏覽(18)
  • Redis,過期監(jiān)聽

    應用場景,優(yōu)惠卷過期,監(jiān)聽 配置類 監(jiān)聽類

    2024年02月14日
    瀏覽(19)
  • redis的key過期策略;主動/被動

    redis 可以設置 key 的過期時間,但這個 key 的過期時間不一定準確。 因為 redis 執(zhí)行 key 過期的策略有 2種 : 主動(定時) 被動( get 的時候判斷) redis 會給設置過期時間的 key 維護一個字典,然后定時輪詢這個字典(每秒10次),隨機抓取一批 key (20個),刪除其中過期的

    2024年02月16日
    瀏覽(19)
  • Redis基本全局命令(含key過期策略)

    Redis基本全局命令(含key過期策略)

    KEY 返回所有滿?樣式(pattern)的key。?持如下統(tǒng)配樣式。 h?llo 匹配 hello , hallo 和 hxllo h*llo 匹配 hllo 和 heeeello h[ae]llo 匹配 hello 和 hallo 但不匹配 hillo h[^e]llo 匹配 hallo , hbllo ,…但不匹配 hello h[a-b]llo 匹配 hallo 和 hbllo 語法: 時間復雜度:O(N) 返回值:匹配pattern的所有key。 ?例

    2024年02月15日
    瀏覽(25)
  • Redis的key過期策略是怎么實現(xiàn)的

    這是一道經典的Redis面試題,一個Redis中可能存在很多很多的key,這些key中可能有很大一部分都有過期時間,此時Redis服務器咋知道哪些key已經過期,哪些還沒過期呢? 如果直接遍歷所有的key,這顯然是行不通的,效率非常低??! Redis整體的策略是定期刪除和惰性刪除相結合。

    2024年01月19日
    瀏覽(18)
  • 架構師成長之路Redis第三篇|Redis key過期清除策略

    maxmemory 100mb 當我們設置的內存達到指定的內存量時, 清除策略的 配置方式決定了默認行為。Redis可以為可能導致使用更多內存的命令返回錯誤,也可以在每次添加新數(shù)據時清除一些舊數(shù)據以返回到指定的限制。 當達到最大內存限制時,Redis所遵循的確切行為是使用MaxMemory-

    2024年02月10日
    瀏覽(21)
  • redis的Key的過期策略是如何實現(xiàn)的?

    Key的過期策略 一個redis中可能同時存在很多很多key,這些key可能有很大一部分都有過期時間,此時,redis服務器咋知道哪些key已經過期要被刪除,哪些key還沒有過期? 如果直接遍歷所有的key,顯然是行不通的,效率極低! Redis的Key有3種過期刪除策略,具體如下: 原理 :在設

    2024年02月13日
    瀏覽(22)
  • Redis 緩存過期及刪除

    Redis 緩存過期及刪除

    物理內存達到上限后,像磁盤空間申請?zhí)摂M內存(硬盤與內存的swap),甚至崩潰。 內存與硬盤交換 (swap) 虛擬內存,頻繁I0 性能急劇下降,會造成redis內存急劇下降;? 一般設置物理內存的3/4,在redis.conf中 maxmemory 1024mb 聲明數(shù)據expires來存儲過期時間,redis使用c語言開發(fā),dict是字

    2024年02月13日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包