`
hellohank
  • 浏览: 145885 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

记录一下redisson监听key过期事件功能

阅读更多

使用redisson监听key过期,需要两步操作:

1、开启redis服务端的事件广播功能。

如果是自建的,则直接在redis.conf中增加或修改(修改后重启redis):

notify-keyspace-events "KEx"

    具体可选的选项如下(所以,上面的KEx可以看下面的含义):

    

 K     Keyspace events, published with __keyspace@<db>__ prefix.
 E     Keyevent events, published with __keyevent@<db>__ prefix.
 g     Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
 $     String commands
 l     List commands
 s     Set commands
 h     Hash commands
 z     Sorted set commands
 x     Expired events (events generated every time a key expires)
 e     Evicted events (events generated when a key is evicted for maxmemory)
 A     Alias for g$lshzxe, so that the "AKE" string means all the events.

 

如果是阿里云redis,则可以到阿里redis的管理界面操作。

 

2、项目中添加监听事件(监听redis事件的行为,各个组件,如jedis等都有自己的方式,自己百度,这里是记录redisson的方式):

public static void main(String[] args) {
        int db = 2;
        RedissonClient redissonClient = createClient(db);
        RTopic topic = redissonClient.getTopic("__keyevent@" + db + "__:expired", new StringCodec());
        topic.addListener(String.class, new MessageListener() {
            @Override
            public void onMessage(CharSequence channel, Object msg) {
                System.out.println("收取到过期的事件:" + channel + "; Thread: " + Thread.currentThread().toString());
                System.out.println("过期的key="+msg);
            }
        });
        String key = "test_expire_listen";
        Object value = "val";
        RBucket bucket = redissonClient.getBucket(key);
        bucket.set(JSON.toJSONString(value), 5, TimeUnit.SECONDS);
        bucket.expire(6,TimeUnit.SECONDS);
    }

    private static RedissonClient createClient(int db) {
        Config config = new Config();
        config.setCodec(new StringCodec());
        config.useSingleServer()
                .setAddress("redis://127.0.0.1:6379")
                .setPassword("******")
                .setConnectionPoolSize(500)
                .setIdleConnectionTimeout(10000)
                .setTimeout(3000)
                .setConnectTimeout(30000)
                .setRetryAttempts(3)
                .setRetryInterval(1000)
                .setDnsMonitoringInterval(-1)
                .setPingConnectionInterval(10000)
                .setDatabase(db);
        return Redisson.create(config);
    }

 

0
1
分享到:
评论

相关推荐

    监听redis过期key,做对应业务处理

    在上述代码中,`setExpireKey`方法用于设置Key的值和过期时间,`handleKeyExpirationEvent`方法监听Key过期事件并执行相应的业务处理。需要注意的是,Spring Data Redis默认并不直接支持Key过期事件的监听,而是通过...

    Redis集群下过期key监听的实现代码

    在Redis集群环境下,由于数据被分散存储在不同的节点上,这给监听key的过期事件带来了额外的复杂性,因为单个节点的过期事件并不能代表整个集群中的key已经过期。 代码实现部分提到了一个基本的思路:通过建立多个...

    SpringBoot监听reids的key值过期

    实现redis的key值过期监听事件,且集成jedis实现redis的简单调用,内有功能备注

    Android开发实现Fragment监听返回键事件功能的方法

    本文实例讲述了Android开发实现Fragment监听返回键事件功能的方法。分享给大家供大家参考,具体如下: 前面的文章Android开发教程之Fragment定义、创建与使用方法详细讲述了Fragment的基本概念与用法。这里再来分析...

    jquery监听鼠标滚轮事件+js监听滚轮事件

    为了捕捉这一行为并根据需要做出响应,开发者通常会使用JavaScript或jQuery来监听滚轮事件。本篇将详细介绍如何使用jQuery和原生JavaScript实现鼠标滚轮事件的监听。 一、jQuery监听鼠标滚轮事件 jQuery库提供了一...

    springboot+redis过期事件监听实现过程解析

    SpringBoot+Redis过期事件监听实现过程解析 本文主要介绍了SpringBoot+Redis过期事件监听实现过程的详细解析,旨在帮助读者更好地理解和掌握相关技术。通过示例代码的详细介绍,对大家的学习或者工作具有一定的参考...

    QT 键盘监听(重写监听事件)

    在`eventFilter()`方法中,你可以根据实际需求处理按键事件,例如记录按键组合、触发特定功能或者修改默认行为。 在博客参考地址(https://blog.csdn.net/qq_37529913)中,作者可能详细介绍了如何将上述代码整合到...

    android全局事件监听器

    标题中的"android全局事件监听器"指的是一个实现此类功能的组件或框架。描述提到这个监听器“没有用任何的第三方库”,这意味着它是通过自定义实现来达到全局监听的目的,这通常会涉及到Android的广播接收器、观察者...

    spring boot+redis 监听过期Key的操作方法

    Spring Boot+Redis 监听过期 Key 的操作方法 本文主要介绍了使用 Spring Boot 和 Redis 监听过期 Key 的操作方法,这种方法在订单业务中非常有用,可以用来设置订单的有效期限,到了有效期限后如果还未支付,就需要...

    jquery 监听 键盘 事件

    其中,监听键盘事件是常见的用户交互处理之一。本文将深入探讨如何使用jQuery来监听键盘事件,以及相关的应用场景和技巧。 ### 1. jQuery键盘事件绑定 jQuery提供了`.on()`方法来绑定事件,包括键盘事件。键盘事件...

    windows后台监听键盘事件(vs mfc版)

    本教程将深入讲解如何使用Visual Studio (VS) 和 MFC 创建一个后台键盘事件监听器,该监听器通过HOOK技术捕获并记录键盘输入。 首先,我们要理解什么是HOOK。在Windows编程中,HOOK是一种机制,允许我们插入代码到...

    JS键盘监听事件addkey无eval版

    ### JS键盘监听事件addkey无eval版 #### 知识点概述 本篇文章将深入探讨一个自定义的JavaScript键盘监听事件处理函数`addkey`,该函数采用了一种不使用`eval`的安全方法来实现对键盘按键的监听。在Web开发中,监听...

    android 后台监听按键事件方法及demo

    android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo

    ScrollView 的滚动事件监听

    4. **滚动事件的应用场景**:滚动事件监听在许多场合都有应用,比如实现无限滚动加载(Pull-to-Refresh或Load-more)效果,监听滑动到底部自动加载更多数据;或者是实现自定义的滑动导航栏,当ScrollView向上滚动时...

    通过AccessibilityService实现系统按键监听功能

    这为开发者提供了深入用户界面交互的能力,例如辅助功能应用或者一些需要监听系统事件的特殊场景。本教程将详细讲解如何通过 AccessibilityService 实现系统按键监听功能。 首先,我们需要在AndroidManifest.xml...

    vb Hook 监听 捕捉键盘,鼠标事件

    在VB(Visual Basic)编程环境中,我们经常需要对用户的键盘和鼠标操作进行监听或捕捉,以便实现特定的功能,如日志记录、游戏控制或者安全监控等。标题中的"vb Hook 监听 捕捉键盘,鼠标事件"指的是通过钩子(Hook...

    JS针对浏览器窗口关闭事件的监听方法集锦

    在JavaScript中,监听浏览器窗口关闭事件对于实现特定的用户交互或数据保存功能至关重要。下面将详细介绍几种常用的浏览器关闭事件监听方法。 1. 方式一:适用于IE浏览器,仅在关闭时提示 ```javascript window....

    js实现监听浏览器关闭和刷新事件

    js实现监听浏览器关闭和刷新事件支持三大浏览器,点击直接看效果

    C# Hock 全局监听程序外的键盘和鼠标的事件

    在IT领域,尤其是在Windows应用程序开发中,有时我们需要捕获系统级别的事件,比如全局...通过学习和理解这个技术,开发者可以构建出更复杂、功能更全面的应用,例如输入记录器、辅助工具,甚至是游戏作弊检测软件等。

    各种Android Dialog创建及其监听事件实现

    查阅JavaDoc API文档 读者可根据JavaDoc API文档来了解如何实现单击item选项监听事件 如下列出的setItems 方法第2个参数易知只要为第2个参数提供OnClickListener实例即可实现监听事件 读者可通过这种方式触类旁通...

Global site tag (gtag.js) - Google Analytics