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 基础教程之事务的使用方法

    Redis 基础教程之事务的使用方法

    这篇文章主要介绍了Redis 基础教程之事务的使用方法的相关资料,Redis 事务可以一次执行多个命令和保证,单独的隔离操作和原子操作需要的朋友可以参考下
    2017-08-08
  • Redis基本数据类型Set常用操作命令

    Redis基本数据类型Set常用操作命令

    这篇文章主要为大家介绍了Redis基本数据类型Set常用操作命令,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • spring boot整合redis中间件与热部署实现代码

    spring boot整合redis中间件与热部署实现代码

    spring boot整合redis最常用的有三个工具库Jedis,Redisson,Lettuce,本文重点介绍spring boot整合redis中间件与热部署实现,需要的朋友可以参考下
    2023-01-01
  • Redis官方ORM框架比RedisTemplate更优雅

    Redis官方ORM框架比RedisTemplate更优雅

    这篇文章主要为大家介绍了Redis官方ORM框架比RedisTemplate更优雅的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • CentOS系统下Redis安装和自启动配置的步骤

    CentOS系统下Redis安装和自启动配置的步骤

    相信大家都知道Redis是一个C实现的基于内存、可持久化的键值对数据库,在分布式服务中常作为缓存服务。所以这篇文章将详细介绍在CentOS系统下如何从零开始安装到配置启动服务。有需要的可以参考借鉴。
    2016-09-09
  • macOS上Redis的安装与测试操作

    macOS上Redis的安装与测试操作

    这篇文章主要介绍了macOS上Redis的安装与测试操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Redis实现分布式锁的五种方法详解

    Redis实现分布式锁的五种方法详解

    在分布式架构中,我们同样会遇到数据共享操作问题,本文章使用Redis来解决分布式架构中的数据一致性问题,需要的小伙伴可以参考一下
    2022-06-06
  • 为什么RedisCluster设计成16384个槽

    为什么RedisCluster设计成16384个槽

    本文主要介绍了为什么RedisCluster设计成16384个槽,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Redis的Python客户端redis-py安装使用说明文档

    Redis的Python客户端redis-py安装使用说明文档

    这篇文章主要介绍了Redis的Python客户端redis-py安装使用说明文档,本文讲解了安装方法、入门使用实例、API参考和详细说明,需要的朋友可以参考下
    2015-06-06
  • redis通过pipeline提升吞吐量的方法

    redis通过pipeline提升吞吐量的方法

    下面小编就为大家分享一篇redis通过pipeline提升吞吐量的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02

最新评论