【发布时间】:2016-04-25 21:35:31
【问题描述】:
我有一个 Spring Hibernate 应用程序。在我的应用程序中,最近我实现了 Spring data Redis。
spring-servlet.xml
<!-- redis connection factory -->
<bean id="jedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:use-pool="true"/>
<!-- redis template definition -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnFactory"/>
这个redisTemplate 在我的ServiceImpl 类中使用。
RedisServiceImpl
@Autowired
private RedisTemplate<String, T> redisTemplate;
public RedisTemplate<String, T> getRedisTemplate() {
return redisTemplate;
}
public void setRedisTemplate(RedisTemplate<String, T> redisTemplate) {
this.redisTemplate = redisTemplate;
}
现在我像这样在 redisServer 中添加数据
public void putData(String uniqueKey, String key, Object results) {
redisTemplate.opsForHash().put(uniqueKey, key, results);
}
现在我想删除过期键。
我在谷歌搜索,但在谷歌都这样说
redisTemplate.expire(key, timeout, TimeUnit);
在这个过期方法中,我们需要提供uniqueKey而不是key。
但我需要过期 key 而不是 uniqueKey。
那么请帮我解决一下过期Key的问题?
【问题讨论】:
-
docs.spring.io/spring-data/data-redis/docs/1.5.2.RELEASE/api/… 没有说任何关于 uniqueKey 的内容。您可以将密钥传递给过期
-
是的,你是对的。在这个 url 中没有说任何关于 uniqueKey 的内容。但是在实现中,当我使用 uniqueKey 时,这个 uniqueKey 就过期了。但是当我使用密钥时,此密钥不会过期。
-
唯一的密钥被认为是整个哈希......所以可以使这个哈希的密钥过期。除非您需要手动删除哈希键和值。
标签: java spring hibernate redis