Redisのイベント通知動作を実現Jboot

 

redis.conf

通知-キースペース、イベント例

 

 

KeyExpiredListener.java
パブリック クラス KeyExpiredListenerは延びJedisPubSub {
     公共KeyExpiredListenerを(){ 
    } 

    @Override 
    公共 ボイド のonMessage(文字列のチャネル、文字メッセージ){        // 收到消息会调用 
        のSystem.out.println(String.Formatの(「受信Redisの公開メッセージ、チャネル% S、メッセージ%s」は、チャネル、メッセージ))。
    } 

    @Override 
    公共 ボイド onSubscribe(文字列チャネル、INT subscribedChannels){     // 订阅了频道会调用 
        のSystem.out.println(String.Formatの( "Redisのチャネルの成功を購読、チャネル%S、subscribedChannels%D"
                チャネル、subscribedChannels))。
    } 

    @Override 
    公共 ボイド onUnsubscribe(文字列チャネル、INT subscribedChannels){    // 取消订阅会调用 
        のSystem.out.println(String.Formatの( "解除Redisのチャネル、チャネル%S、subscribedChannels%dの" 
                チャネル、subscribedChannels))。
    } 
}

 

AppListener.java
パブリック 抽象 クラス AppListenerは延びJbootAppListenerBase { 

    @Override 
    公共 ボイドonInterceptorConfig(インターセプタインターセプタ){
         スーパー.onInterceptorConfig(インターセプタ)。
        interceptors.add(新しいSessionInViewInterceptor()); 
    } 

    @Override 
    公共 ボイドonEngineConfig(エンジンME){ 

    } 

    @Override 
    公共 ボイドONSTART(){ 
        Aop.inject(Jboot.getRedis()サブスクライブ(。 

        、)(新しいKeyExpiredListener "を__keyevent @ 0 __:期限切れ" );
    } 

}

 

テストコード

Cache.set( "試験-101"、 "101"、30 ); 
Cache.set( "試験-201"、 "201"、60 )。
Cache.set( "試験-301"、 "301"、90)。

 

効果

受信公表のRedisは、メッセージ、チャネル__keyevent @ 0 __:、期限切れメッセージはXXXX:S:テスト-101は、
メッセージ、チャネル__keyevent @ 0 __を公表のRedisを受け取る:期限切れ、メッセージはXXXX:S:テスト-201が
発表されRedisのを受け取るメッセージ、チャネル__keyevent @ 0__: S:試験-301、メッセージXXXX期限切れ

 

おすすめ

転載: www.cnblogs.com/coffee_cn/p/12565112.html