springboot +は、期限切れのイベントリスナーをRedisの

1 redis.confは、設定ファイルを変更します。

鍵空間@接頭事件で公開Kキースペースのイベント、
KeyEventの@接頭辞で公開EのKeyEventイベント、
(非G汎用コマンド - DEL、EXPIRE、RENAME、のようなタイプの特定)... 
$文字列のコマンド
リットル一覧コマンド
の設定は、コマンド
時間ハッシュコマンド
Zソート設定コマンドは、
期限切れのイベント(イベントは、キーの有効期限が切れるたびに生成さ)× 
E追い出されたイベント(キーが時に生成されるイベントれる追い出さためmaxmemory)
A別名をするためにそう、「AKE」という、G $ lshzxe 文字列の手段すべてのイベント。
redis.conf的默认的配置是:通知 -keyspace- イベント""
我々は変更する必要があります通知-keyspace- 例イベント
すなわち、対応するキーイベント上記の期限が切れています。Redisの再起動この変更を再生

の期限切れのRedisのイベントを聞くために2クライアント:

@Configuration
 パブリック クラスRedisListenerConfig { 
    @Bean 
    RedisMessageListenerContainer容器(RedisConnectionFactoryはconnectionFactory){ 

        RedisMessageListenerContainerコンテナ = 新しいRedisMessageListenerContainer()。
        container.setConnectionFactory(はconnectionFactory)。
        戻り値のコンテナ。
    } 
}

リスナーを書く3。

SLF4J @ 
@Component 
パブリック クラスRedisKeyExpirationListenerはKeyExpirationEventMessageListener {延び

    公共RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer){ 
        スーパー(listenerContainer)を、
    } 

    @Override 
    公共 ボイドのonMessage(メッセージ・メッセージ、バイト[]パターン){ 
        文字列expiredKey = message.toString()。
       log.info(" expiredKey ========= " + expiredKey)。
    }

照会テーブルに記載の方法は、ちょうど2つの異なるID、30代、27Sを追加しました。

  redisUtil。セット" ユーザーID " +ユーザー。得る0).getId()、ユーザ。得る0).getId()、30 )。
  redisUtil。セット" UserInfoId " +のUserInfo。取得0).getId()、のUserInfo。取得0).getId()、27);

コンソール出力:

注意:
期限切れのリターン内のメッセージを聞くには、キーのキー値の有効期限が切れていることである、の戻り値はありません

おすすめ

転載: www.cnblogs.com/red-star/p/12557965.html