Spring Boot Redis JDK序列化器 模糊清除Key无效问题
因公司项目历史原因使用 Redis 的JDK序列化器 使用以下方式糊清除没有作用
Set<String> keys = redisTemplate.keys("*" +RedisKey.NAYUKI_SHOP_CART+ "*");
redisTemplate.delete(keys);
解决方法: 通过redisTemplate 获取连接工厂 完美解决
private void clearRedis(String key) {
RedisConnection connection = Objects.requireNonNull(redisTemplate.getConnectionFactory()).getConnection();
Set<byte[]> keys = connection.keys(("*" + key + "*").getBytes());
if (CollectionUtils.isNotEmpty(keys)) {
keys.forEach(connection::del);
}
}