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

来源:互联网 发布:如何自学app编程 编辑:程序博客网 时间:2024/05/27 00:32

redis里能不能针对set数据的每个member设置过期时间?[点击该链接查看原贴地址]


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

  • 用hash,放入的member的对象记录放入redis的时间和真实数据,获取的时候逻辑判断是否过期.
    评论(0)| 引用此答案| 举报 (2014-09-23 14:50)
    1
  • 言知之易
    存的时候,只能存不过期的,同时存入时间戳,然后取的时候,根据时间戳代码上操作。
    评论(0)| 引用此答案| 举报 (2014-09-24 19:26)
    1
  • ydx2008
    set的score存储时间值,每天定时扫描一下哪些过期的
    评论(0)| 引用此答案| 举报 (2014-09-25 10:16)
    1
  • 牟宗民
    第一种方法,拆分成多个key,每个key设置过期时间。第二种方法改为hashMap存储,加一个过期时间的字段。
    评论(0)| 引用此答案| 举报 (2014-09-25 19:25)
    1
  • catch23

    不能。可以用sorted set,把要过期的member和key的信息放在sorted set的member里,把过期时间放在score中。跑个任务用zrangebyscore遍历就行了。用sorted set好处是只需要遍历过期的member,不用扫描整个过期member集合。

原创粉丝点击