Spring boot Redis是否支持在散列中的字段(hashKey)级别设置过期? 实现上下文

Spring boot Redis是否支持在散列中的字段(hashKey)级别设置过期? 实现上下文,spring-boot,caching,redis,jedis,spring-data-redis,Spring Boot,Caching,Redis,Jedis,Spring Data Redis,我有一个基于令牌的API实现。高级逻辑是由API发出的令牌,在后续调用其他API时必须使用该令牌。一个API从DB中获取大量数据并将其存储在缓存中(我在这里使用的是Redis)。缓存的键为Session:Functionality,字段(hashKey)为令牌,Json格式的值为从数据库获取的数据。在对API的后续调用中,令牌在网关级别进行验证,API检查数据是否已经存在于REDIS中 在这里,它使用Key作为Session:Functionality和hashkey作为令牌查询Redis中的散

我有一个基于令牌的API实现。高级逻辑是由API发出的令牌,在后续调用其他API时必须使用该令牌。一个API从DB中获取大量数据并将其存储在缓存中(我在这里使用的是Redis)。缓存的键为Session:Functionality,字段(hashKey)为令牌,Json格式的值为从数据库获取的数据。在对API的后续调用中,令牌在网关级别进行验证,API检查数据是否已经存在于REDIS中

在这里,它使用Key作为Session:Functionality和hashkey作为令牌查询Redis中的散列。如果数据在Redis中,API将发送一个快速响应,否则它将从下游系统获取数据

所以在Redis中的Hash看起来像

问题: 现在我的问题是,是否可以在haskkey级别为每个令牌设置唯一的超时,因为基础数据可能会更改,我希望在此级别保持5分钟的超时。

我使用的是Spring Boot绝地武士,所以如果你能用这个框架发布设置超时的具体方法,那就太好了。

您好,这是不可能的,或者为该特定字段使用不同的顶级键,或者与该字段一起存储另一个具有过期时间的字段,获取这两个字段,并让应用程序根据当前时间了解该字段是否仍然有效


从redis的作者安提雷斯那里

你试过添加ttl吗?你还可以分享你的redis配置吗?你需要Jedis配置吗?是的,那会有帮助。我输入的是两部分,因为它很大,@Bean JedisConnectionFactory JedisConnectionFactory(){redistandaloneconfiguration redistandaloneconfiguration=new redistandaloneconfiguration(config.getRedisIp(),Integer.parseInt(config.getRedisPort());redisStandaloneConfiguration.setPassword(RedisPassword.of(config.getRedisPassword());redisStandaloneConfiguration.setDatabase(Integer.parseInt(config.getRedisDbIndex());返回新的JedisConnectionFactory(redisStandaloneConfiguration);}