一.业务简介
我们知道,Redis 里面暂时没有接口给 List、Set 或者 Hash 的 field 单独设置过期时间,只能给整个列表、集合或者 Hash 设置过期时间。
这样,当 List/Set/Hash 过期时,里面的所有 field 元素就全部过期了。但这样并不满足需求。
二.结论
直接说结论:我们可以通过Hash配合Zset的数据结构,来对每一个单独的元素设置不同的过期时间
三.代码示例
通过传入对应的key值,在Redis中存入二个数据结构,一个是Hash,以hashKey作为标识的数据结构
然后在存储另外一个Zset的数据结构,以score为过期时间,value为HashKey
相当于数据库中外键的感觉
最后创建一个定时任务(或者阻塞队列的方式)定时去判断Zset的数据有没有超时,如果超时的话剔除Zset和Hash表单独的元素的数据
四.测试
通过Apipost发送请求,代码层面进行解析找到对应单独的key(唯一标识符)
插入数据到Redis成功,等待超时剔除
测试成功