缓存预热
对于有未来有预知的大量请求进行准备,准备好相关的缓存数据,防止数据库崩溃。
秒杀场景
秒杀时间到前对库存数据进行预热。
冷数据场景
存在大量死用户也就是冷数据,需要在某个时刻点进行消息推送,召回他们回来使用app或参加活动。
死用户平常在系统中因为无活跃数据,因此也没有相应的缓存数据。而作为通知系统,需要在某一个时刻点大量访问本系统,访问本系统的冷用户数据通知短信。
zset应用场景
延迟队列
zset 可以把score 当成延迟数据通知的时间戳。 使用 zrangebyscore key 0 1606996111
过滤出到期元素。
简单的使用的话,可以使用一个死循环线程通过zrangebyscore去遍历 过期元素,并异步分发到消费线程。
但是实际在系统使用中,常使用Redission 的延迟队列。Redission的延迟队列,使用zset、list及发布订阅模型,通过lua脚本使用发布订阅模式延迟发布元素过期消息,将zset的数据转移到list中。
获取list的数据可以使用Redission的 getBlockingQueue(), 通过blpop 命令阻塞弹出延迟元素进行对应的消费任务。
排行榜
经常浏览技术社区的话,应该对 “1小时最热门” 这类榜单不陌生。
当