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

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集合。







  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值