相关的几个问题【延时任务】

1、为什么任务需要存储在数据库中?

  延时任务是一个通用的服务,任何有延迟需求的任务都可以调用该服务,内存数据库的存储是有限的,需要考虑数据持久化的问题,存储数据库中是一种数据安全的考虑。

 

2、为什么使用 redis 中的两种数据类型,list 和 zset?

原因一:list 存储立即执行的任务,zset 存储未来的数据

原因二:任务量过大以后,zset 的性能会下降

 

时间复杂度:执行时间(次数)随着数据规模增长的变化趋势

操作 redis 中的 list 命令 LPUSH :时间复杂度:O(1)

操作 redis 中的 zset 命令 zadd:时间复杂度:O(M*log(n))

  说明
O(1) 常量级复杂度,执行次数与数据规模没有关系
O(M*log(n)) 对数级复杂度,执行次数与数据规模是对数关系

 

3、在添加 zset 数据的时候,为什么需要预加载?

  如果任务数据特别大,为了防止阻塞,只需要把未来几分钟要执行的数据存入缓存即可,是一种优化的形式。

posted @   青核桃啊  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示