开发者社区> 问答> 正文

redis能否对set数据的每个member设置过期时间?

想要使用redis的set数据集记录一组数据,每一条数据的过期时间都是30天,但这些数据不是同一天加进去的。也就是说这组数据不会在同一时间过期。这样就不能对set的key进行过期时间设定,因为一旦设置了key的过期时间,所有的member会同时过期。
但是在redis的语法里又没有发现针对每个member的过期时间设定方法。请问大家有没有什么好的方法解决这个问题?

展开
收起
落地花开啦 2016-02-25 12:01:44 7466 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    第一种方法,拆分成多个key,每个key设置过期时间。
    第二种方法改为hashMap存储,加一个过期时间的字段。
    可以用sorted set,把要过期的member和key的信息放在sorted set的member里,把过期时间放在score中。跑个任务用zrangebyscore遍历就行了。用sorted set好处是只需要遍历过期的member,不用扫描整个过期member集合。

    2019-07-17 18:47:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载