开发者学堂课程【Redis 入门到精通(基础篇):数据类型-数据时效性设置】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/764/detail/13374
数据类型-数据时效性设置
String 类型数据的扩展操作
业务场景
“最强女生”启动海选投票,只能通过微信投票,每个微信号每4小时只能投1票。
电商商家开启热门商品推荐,热门商品不能一直处于热门期,每种商品热门期维持3天,3天后自动取消热门。
新闻网站会出现热点新闻,热点新闻最大的特征是时效性,如何自动控制热点新闻的时效性。
投票方面,会有一些功利在里面,规定你可以投票,但是不能随便投票,规定单位时间内投相应的票数,这样就可以限定次数,其他场合也一样,都是讲的是在一定时间内有效,过了这个时间段就会无效,我们所要达到的效果就是,在单位时间,进行一个记录与筛选,然后这样就可以去避免刷票,然后这时我们就有一个对应的id,在设定的时间里面,计时结束后给擦掉这个id,这时就可以继续投票了,这也redis提供的工具之一。
解决方案:
设置数据指定的生命周期
Setex key seconds value
Psetex key milliseconds value
生命周期指的就是说这个数据的存在时间,在key后面跟上时间,差别就在于单位,一个是秒,一个是毫秒。
然后进行一个设置,setex tel 10 1,就是说设置一个数值1存活10秒钟,然后接下来get数据就会得到1,时间到达后,再吃get,得到的就是空(nil)。
如果说在已经设置的生命周期前提下,又重新设置一个,那么此时存在的是我们设置的第二个生命周期,会进行一个覆盖。
Redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。