美文网首页
Redis有序队列的应用解决性能瓶颈

Redis有序队列的应用解决性能瓶颈

作者: 爱吃赵一鸣 | 来源:发表于2022-03-13 10:42 被阅读0次

       线上系统功能有个场景,需要获取代理IP进行爬取数据。对接的代理IP的返回接口每个IP有存活时间,需要保证一直取到的IP是有效IP,之前代码实现是定时拉取代理IP,并存放在Redis中,存活时间即Redis key的过期时间,取的时候以key的前缀查找随机取一个。这种方式实现简单,也符合需求,但是上线后Redis预警很多,查看慢日志发现大部分是该功能模糊查找key这个问题。

        对于这个场景可以采用Redis 有序队列sorted set来实现,相关命令是zdd-插入,zrange-获取。定时拉取代理IP,以存活时间+拉取时间秒数作为score存入Redis中,获取的时候则是按score降序,取前10中随机一个,这样能取到最新的代理IP,满足需求。这样优化后上线Redis的预警恢复正常了。

        Redis keys命令用于查找所有符合给定模式 pattern 的 key ,在生产环境Redis的key可以达到几十万,所以命令会占用大量性能,一般来说生产环境会建议禁用keys命令该功能。

相关文章

  • Redis应用-布隆过滤器

    系列文章Redis应用-分布式锁Redis应用-异步消息队列与延时队列Redis应用-位图Redis应用-Hype...

  • Redis应用-Geo

    系列文章Redis应用-分布式锁Redis应用-异步消息队列与延时队列Redis应用-位图Redis应用-Hype...

  • 通过redis的有序集合[zset] 实现延迟队列

    php使用redis的有序集合zset实现延迟队列 我们通过redis的有序集合zset来实现简单的延迟队列,将消...

  • Spring Boot Redis 序列化方案的选择!

    Redis的使用越来越广泛,当遇见性能瓶颈时,我们应该如何去解决呢? 01 Spring Boot Redis S...

  • linux 下查看性能状态命令

    解决问题: 性能优化,首先分析是由于哪些瓶颈造成的性能低下, 如 cpu 瓶颈,内存瓶颈,io瓶颈, 或者程序本身...

  • 接口性能测试的目标

    发现应用程序的性能瓶颈发现数据库的性能瓶颈 应用程序各项性能指标数据库各项性能指标 常见接口协议:HTTP //超...

  • 消息队列应用场景解析

    分布式消息服务DMS是完全托管的高性能消息队列服务,提供普通队列、有序队列、Kafka、ActiveMQ、Rabb...

  • Message Queue 消息队列

    消息队列概述 消息队列是系统中重要的中间件,主要解决应用耦合,异步消息,高并发等问题。实现高性能,高可用,可伸缩和...

  • day39-Redis和MongoDB

    1. Redis redis函数学习Redis数据类型:字符串、队列、集合、哈希、有序集合临时设置密码获取密码co...

  • 消息队列技术介绍

    一、 消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能...

网友评论

      本文标题:Redis有序队列的应用解决性能瓶颈

      本文链接:https://www.haomeiwen.com/subject/vvvxcrtx.html