首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
Redis怎么实现延时消息?
sir_gaga
使用zset,value存放消息体,score设置成毫秒或者秒的时间戳,轮询zet中的数据,发现到了score中存储的时间戳就获取到value进行消费
查看原题
13个回答
添加回答
7
夜雨青灯
redis通过zset有序集合来实现延时消息功能。可以将发送的时间作为score发送的内容作为value存储在zset中,轮询zset检查当前时间是否达成消息的发送时间,来实现延时消息的投递。
发表于 2024-10-03 15:22:13
回复(0)
1
刻苦的烤冷面在喝茶
使用Zset这种数据结构,将发送的时间作为score,消息作为value。轮询zset,达到发送时间即可投递消息
发表于 2025-03-15 09:27:25
回复(0)
0
acodebird
redis实现延时队列
1.通过ZSet+轮询的方式,ZSet的value存消息,score存消息的过期时间戳,然后轮询取出【0,当前时间戳】的数据就是过期的
2.使用redisson提供的延迟队列,基于有序集合和redis发布订阅机制实现
发表于 2025-08-05 22:13:19
回复(0)
0
sir_gaga
使用zset,value存放消息体,score设置成毫秒或者秒的时间戳,轮询zet中的数据,发现到了score中存储的时间戳就获取到value进行消费
发表于 2025-07-06 23:27:03
回复(0)
0
叠叠不休的加菲猫
Redis可通过有序集合(ZSET)实现延时消息:将消息作为value,到期时间戳作为score存入ZSET。消费者轮询用ZRANGEBYSCORE获取到期消息,配合Lua脚本保证原子性获取和删除。也可结合键过期通知机制实现事件触发。
发表于 2025-06-06 16:58:45
回复(0)
0
牛客152771347号
Redis可通过有序集合(ZSET)实现延时消息:将消息作为value,到期时间戳作为score存入ZSET。轮询zset检查当前时间是否达成消息的发送时间,来实现延时消息的投递。
发表于 2025-05-22 20:43:47
回复(0)
0
layiuuu
redis可以通过zset实现延迟消息,将执行时间设置为score,使用定期的扫描来检查并消费到期的消息
发表于 2025-04-25 19:47:58
回复(0)
0
黄崽崽呀
不能用Redis 的Stream 来实现吗?
发表于 2025-04-20 10:57:50
回复(0)
0
Zhoucl
Redis可以通过使用zset(有序集合)来实现延时消息功能。具体来说,可以将消息的发送时间作为score,消息内容作为value存储在zset中,然后通过轮询zset,检查当前时间是否达到消息的发送时间,来实现延时消息的投递。
发表于 2025-03-20 16:14:03
回复(0)
0
牛客651974250号
redis的 zset有序集合来实现延时消息score作为发送的时间,内容作为value,redisson的延迟队列
发表于 2025-02-20 20:28:34
回复(0)
0
瓶子1224
发表于 2024-11-27 10:10:27
回复(0)
0
蚌埠住了的磨洋工匠人很热爱生活
zset,将发送的时间作为score,传输的消息作为value,轮询检查当前时间是否达到消息的发送时间,从而实现延时消息的投递
发表于 2024-11-21 17:47:39
回复(0)
0
双非小🐭
使用Zset实现: 将当前时间戳作为score存入,传输的消息作为value 使用Redisson的延迟队列
发表于 2024-08-08 20:51:50
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
难度:
13条回答
53收藏
531浏览
热门推荐
相关试题
实现二分类的F-Score
机器学习
评论
(1)
在 Go 语言中使用 append...
Go
评论
(1)
在电商支付模块测试中,需要对金额输...
软件测试
评论
(1)
以下哪些技术可以帮助大模型有效处理...
大模型概念
评论
(1)
以下代码中,关于Java的方法引用...
Java
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题