您的位置:首页 > 数据库 > Redis

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

2017-07-20 17:11 441 查看


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

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

用hash,放入的member的对象记录放入redis的时间和真实数据,获取的时候逻辑判断是否过期.

评论(0)| 引用此答案| 举报 (2014-09-23
14:50)

1



言知之易2年前

存的时候,只能存不过期的,同时存入时间戳,然后取的时候,根据时间戳代码上操作。

评论(0)| 引用此答案| 举报 (2014-09-24
19:26)

1



ydx20082年前

set的score存储时间值,每天定时扫描一下哪些过期的

评论(0)| 引用此答案| 举报 (2014-09-25
10:16)

1



牟宗民2年前

第一种方法,拆分成多个key,每个key设置过期时间。第二种方法改为hashMap存储,加一个过期时间的字段。

评论(0)| 引用此答案| 举报 (2014-09-25
19:25)

1



catch232年前

不能。可以用sorted set,把要过期的member和key的信息放在sorted set的member里,把过期时间放在score中。跑个任务用zrangebyscore遍历就行了。用sorted set好处是只需要遍历过期的member,不用扫描整个过期member集合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: