Redis支持在HASH的Field(hashKey)级别设置Expiration吗?
Does Redis Support setting Expiration at the Field (hashKey) level in a HASH?
实现上下文
我有一个基于令牌的 API 实现。高层逻辑是令牌由 API 发出,在随后调用其他 API 时必须使用此令牌。一个 API 从数据库中获取大量数据并将其存储在缓存中(我这里使用的是 Redis)。缓存的键为 Session:Functionality,字段 (hashKey) 作为标记,值为 Json 格式,作为从数据库中获取的数据。在对 API 的后续调用中,令牌在网关级别进行验证,API 检查数据是否已存在于 REDIS 中。
这里查询Redis中的HASH,Key为Session:Functionality,hashkey为token。如果数据在 Redis 中,API 会发送快速响应,否则会从下游系统中获取数据。
所以在 Redis 中的 Hash 看起来像,
问题
现在我的问题是,是否可以在 haskkey 级别为每个令牌设置唯一的超时,因为基础数据可能会发生变化,我想在此级别保持 5 分钟的超时。
我用的是Spring Spring Boot Jedis,所以如果你能post这个框架设置超时的具体方法就好了。
没有
Hi, it is not possible, either use a different top-level key for that specific field, or store along with the filed another field with an expire time, fetch both, and let the application understand if it is still valid or not based on current time.
来自antirez——redis的作者https://github.com/antirez/redis/issues/167#issuecomment-2559040
实现上下文
我有一个基于令牌的 API 实现。高层逻辑是令牌由 API 发出,在随后调用其他 API 时必须使用此令牌。一个 API 从数据库中获取大量数据并将其存储在缓存中(我这里使用的是 Redis)。缓存的键为 Session:Functionality,字段 (hashKey) 作为标记,值为 Json 格式,作为从数据库中获取的数据。在对 API 的后续调用中,令牌在网关级别进行验证,API 检查数据是否已存在于 REDIS 中。
这里查询Redis中的HASH,Key为Session:Functionality,hashkey为token。如果数据在 Redis 中,API 会发送快速响应,否则会从下游系统中获取数据。
所以在 Redis 中的 Hash 看起来像,
问题
现在我的问题是,是否可以在 haskkey 级别为每个令牌设置唯一的超时,因为基础数据可能会发生变化,我想在此级别保持 5 分钟的超时。
我用的是Spring Spring Boot Jedis,所以如果你能post这个框架设置超时的具体方法就好了。
没有
Hi, it is not possible, either use a different top-level key for that specific field, or store along with the filed another field with an expire time, fetch both, and let the application understand if it is still valid or not based on current time.
来自antirez——redis的作者https://github.com/antirez/redis/issues/167#issuecomment-2559040