Redis Key过期监听的配置详解

 更新时间:2024年06月11日 11:35:56   作者:hrui0706  
这篇文章主要介绍了Redis Key过期监听配置,默认情况下在Windows系统中双击redis-server.exe用的是内置的配置文件,文中通过代码示例和图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

默认情况下在Windows系统中双击redis-server.exe用的是内置的配置文件

如果希望用这两个配置文件

  • redis.windows.conf:这是用于在Windows上运行Redis服务器的标准配置文件。可以使用这个文件通过命令行启动Redis服务器。
  • redis.windows-service.conf:这是专门为在Windows服务中运行Redis设计的配置文件。可以使用这个文件将Redis作为Windows服务来运行。

Window安装Redis为服务并设置开机自启   

在redis安装目录下管理员运行cmd  

redis-server --service-install redis.windows.conf --service-name redis 
net start redis //开机自启

修改redis的配置文件

@Configuration
public class RedisConfig2 {
    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
                                            MessageListenerAdapter listenerAdapter) {
        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        // 订阅键过期事件
        container.addMessageListener(listenerAdapter, new ChannelTopic("__keyevent@0__:expired"));
        return container;
    }
 
    @Bean
    MessageListenerAdapter listenerAdapter(RedisKeyExpiredListener listener) {
        return new MessageListenerAdapter(listener);
    }
}
@Component
public class RedisKeyExpiredListener implements MessageListener {
 
    @Autowired
    private ITReportTimesService tReportTimesService;
 
    @Override
    public void onMessage(Message message, byte[] pattern) {
        String expiredKey = message.toString();
        if (expiredKey.startsWith("sleep:decibels:")) {//只处理该key过期删除时间
            Long userId = Long.valueOf(expiredKey.split(":")[2]);
            // 处理非正常关机导致的睡眠结束逻辑
            handleUnexpectedShutdown(userId);
        }
    }
 
    private void handleUnexpectedShutdown(Long userId) {
        // 处理睡眠监测结束逻辑,例如记录结束时间
        System.out.println("监测到了@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
        //要处理的逻辑.......
    }
}
 @Autowired
    private RedisTemplate  redisTemplate;
 
    @GetMapping("/sleepTimes")//监测时候每多少分钟调用一次
    public AjaxResult sleepTimes(){
        LoginUser loginUser = getLoginUser();
        Long userId = loginUser.getUserId();
        // 往redis中记录,延时30秒,通过Redis key过期监听判断用户是否非正常关机
        String redisKey = "sleep:decibels:" + userId;
        //第一次会创建key和value  第二次调用会更新(覆盖相同key)key和value
        redisTemplate.opsForValue().set(redisKey, "I am active", 60, TimeUnit.SECONDS);
        System.out.println("sleepTimes");
        return success();
    }

到此这篇关于Redis Key过期监听的配置详解的文章就介绍到这了,更多相关Redis Key过期监听内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • redis事务_动力节点Java学院整理

    redis事务_动力节点Java学院整理

    这篇文章主要介绍了redis事务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Redis结合Lua脚本实现分布式锁详解

    Redis结合Lua脚本实现分布式锁详解

    Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 本文主要为大家介绍了Redis如何结合Lua脚本实现分布式锁,需要的可以参考下
    2024-02-02
  • Redis的Sentinel解决方案介绍与运行机制

    Redis的Sentinel解决方案介绍与运行机制

    这篇文章主要介绍了Redis的Sentinel解决方案介绍与运行机制, Sentinel 是一款面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来保障服务的稳定性,需要的朋友可以参考下
    2023-07-07
  • 使用RediSearch实现在Redis中全文检索

    使用RediSearch实现在Redis中全文检索

    RediSearch 是 Redis 的一个插件,它为 Redis 数据库添加了全文搜索和查询功能,使开发人员能够在 Redis 中高效地执行全文检索操作,下面我们就来看看是具体如何使用的吧
    2023-08-08
  • 基于Redis无序集合如何实现禁止多端登录功能

    基于Redis无序集合如何实现禁止多端登录功能

    这篇文章主要给你大家介绍了关于基于Redis无序集合如何实现禁止多端登录功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Redis中的数据过期策略详解

    Redis中的数据过期策略详解

    这篇文章主要介绍了Redis中的数据过期策略,文中通过示例代码介绍的很详细,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 一文掌握Redis的三种集群方案(小结)

    一文掌握Redis的三种集群方案(小结)

    这篇文章主要介绍了一文掌握Redis的三种集群方案(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • redis客户端实现高可用读写分离的方式详解

    redis客户端实现高可用读写分离的方式详解

    基于sentienl 获取和动态感知 master、slaves节点信息的变化,我们的读写分离客户端就能具备高可用+动态扩容感知能力了,接下来通过本文给大家分享redis客户端实现高可用读写分离的方式,感兴趣的朋友一起看看吧
    2021-07-07
  • Redis配置文件详解

    Redis配置文件详解

    这篇文章主要介绍了Redis配置文件详解,本文详细完整的用中文解释了Redis配置文件中各种参数的作用和功能,需要的朋友可以参考下
    2015-04-04
  • Redis key-value乱码的解决

    Redis key-value乱码的解决

    本文主要介绍了Redis key-value乱码的解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06

最新评论