今天小编给大家分享一下redis怎么实现页面实时更新自动上线的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。某些页面需要配置广告或活动宣传图,广告或活动需满足随时上下线、过期自动下线及到时自动上线。如:现在时间2019-2-22 16:16:13,要在支付完成页面配置领奖活动,活动要在2019-3-10 00:00:00准时上线,在2019-3-30 23:59:59结束活动。所以要的效果是,在活动上线前的任意时刻配置完活动后,页面到时间自动上线这个活动。也可能会是其他的多个活动或广告,每个页面广告的个数可变,不同上下线时间可不同,其他页面也需要实现这样的功能,页面与页面之间的活动不一定一样。需求简单的几句话,那么我们来具体的分析一下。广告或活动宣传图随时上下线、过期自动下线及到时自动上线每个页面广告的个数可变不同广告上下线时间可不同页面与页面之间的活动不一定一样1、【广告或活动宣传图】要为不同页面设置不同的广告,有的页面广告可能一样,也就是广告会复用,所有要有广告表。2、【每个页面广告的个数可变】【不同广告上下线时间可不同】【页面与页面之间的活动不一定一样】页面可配置多个广告,所有要有页面配置表,以及广告和页面的关系表,即页面广告表。页面配置表主要配置页面的广告个数,实现【每个页面广告的个数可变】,页面广告表主要配置页面的每个广告上下线时间,实现【不同广告上下线时间可不同】简单分析后得出如下表结构:广告表adv,页面配置表page_config,页面广告表page_adv这些页面配置的广告在一段时间内是不会变的,如果页面请求次数较多,广告查询次数就会很频繁,对数据库造成不必要的压力。所以可以引入缓存,降低数据库请求次数,缓解数据库压力。这里使用的Redis。何时入缓存?可以选择在服务启动时异步把已在上下线时间区间内的广告先加载至缓存,或选择在请求时取缓存,缓存内没有时再查库然后放缓存。缓存时间视情况而定。这里选择的是,项目启动时异步把符合条件的页面广告配置信息存入Redis,那些还没到指定时间的先不放Redis,等到访问页面加载广告时,先查Redis,若无则按条件(>=nowtime)查库,查到后存Redis。在接口中拿到广告配置信息后,判断当前时间是否在配置的时间区间内,由于一个页面配置多个广告,不同广告时间也不同,所以要迭代,把符合的返回,有过期的就做标记,然后把整个页面的配置信息在Redis里删除。(或者不选择在启动时加载,就在用户请求时加入缓存,但是下面的第1步的方法在刷新加载时会用到,故不能删)a、查询所有pageId两个表内连接,得List
当然这个缓存穿透的优化方案只是其中一种。还可以这样:1、控制层拦截:根据pageId查询page_adv表,查不到说明没配置,直接返回。2、page_config 表增加字段,表示当前页面已经配置的广告个数,默认0,每配置一个该字段加1,把大于0的pageId缓存起来,调接口时前判断在不在缓存里。以上就是“redis怎么实现页面实时更新自动上线”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注开发云行业资讯频道。
这篇文章将为大家详细讲解有关win8电脑不能开机不断重启怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。软件问题1、首先,如果电脑按下开机按钮后,各个信号灯还是会亮起来,屏幕也会亮一下,我们可以小小的庆幸一下,电脑只是软…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。