在Spring Boot环境中使用org.springframework.data.redis.core.RedisTemplate
删除匹配的key可以按照以下步骤实现。首先,您需要创建一个方法,该方法接受一个字符串参数,然后通过RedisTemplate查询所有匹配的key,并删除它们。
下面是一个简单的示例代码:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ScanOptions;
import org.springframework.stereotype.Service;
import java.util.Set;
@Service
public class RedisService {
@Autowired
private RedisTemplate<String, String> redisTemplate;
public void deleteKeysByPattern(String pattern) {
Set<String> keysToDelete = redisTemplate.keys("*" + pattern + "*");
if (keysToDelete != null && !keysToDelete.isEmpty()) {
redisTemplate.delete(keysToDelete);
System.out.println("Deleted keys: " + keysToDelete);
} else {
System.out.println("No keys found matching the pattern: " + pattern);
}
}
public Set<String> scanKeysByPattern(String pattern) {
return redisTemplate.keys("*" + pattern + "*");
}
}
在上述代码中,deleteKeysByPattern
方法接受一个字符串参数 pattern
,使用 redisTemplate.keys
方法获取所有匹配的key,然后通过 redisTemplate.delete
方法删除这些key。如果没有匹配的key,则输出相应的消息。
请注意,使用通配符 *
来匹配包含指定字符串的key。如果您的字符串是一个确切的key而不是一部分,可以省略通配符。