Spring Boot环境里批量删除匹配的key
在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而不是一部分,可以省略通配符。