[英]Spring Data Redis Expire Key
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
我有一個 One 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);
在這個 expire 方法中,我們需要提供uniqueKey
而不是key
。 但我需要 Expire key
而不是uniqueKey
。
所以請幫助我我可以為過期Key
做些什么?
簡單而簡短:通過 RedisConnection
public void saveInCache(String key, Object obj) {
RedisConnection connection = connectionFactory.getConnection();
try {
connection.set(key.getBytes(), SerializationUtils.serialize(obj));
//setting custom expiry runtime
long expiresIn = obj.getExpiresAfter() - Instant.now().getEpochSecond();
connection.expire(key.getBytes(), expiresIn);
} catch (Exception e) {
//handle any exception
}
finally {
try {
if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (Exception e) {
logger.error("Exception while closing redis connection : " + e.getMessage());
e.printStackTrace();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.