Redis删除相同前缀的key
直接撸demo
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import org.apache.commons.collections.CollectionUtils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ScanParams; import redis.clients.jedis.ScanResult; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPool; /** * Class Name: Main.java * Time: 2020年5月15日 下午5:33:36 * @author XinKaiKai * */ public class Main { private static Jedis jedis; private JedisPool jedisPool; private ShardedJedis shardedJedis; private ShardedJedisPool shardedJedisPool; public Main() { initialPool(); initialShardedPool(); shardedJedis = shardedJedisPool.getResource(); jedis = jedisPool.getResource(); } private void initialPool() { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(20); config.setMaxIdle(5); config.setMaxWaitMillis(10001); config.setTestOnBorrow(false); jedisPool = new JedisPool(config,"127.0.0.1",6379); } private void initialShardedPool() { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(20); config.setMaxIdle(5); config.setMaxWaitMillis(1000l); config.setTestOnBorrow(false); Listshards = new ArrayList (); shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); shardedJedisPool = new ShardedJedisPool(config, shards); } public static void main(String[] args) { new Main().removeKeys("userModulePri_*"); } public void removeKeys(String key) { Boolean blBroken = false; List keys = new ArrayList (); try { keys = getByScan(key, jedis); System.out.println("即将删除的key是 " + keys); String[] array = keys.toArray(new String[0]); jedis.del(array); } catch (Exception e) { blBroken = true; System.out.println("从redis中移除key:" + key + "失败。异常信息如下:" + e.getMessage()); } } public static List getByScan(String key, Jedis jedis) { List list = new ArrayList<>(); ScanParams params = new ScanParams(); params.match(key); params.count(100); String cursor = "0"; while (true) { ScanResult scanResult = jedis.scan(cursor, params); List eles = scanResult.getResult(); if (!CollectionUtils.isEmpty(eles)) { list.addAll(eles); } cursor = scanResult.getStringCursor(); if ("0".equals(cursor)) { break; } } return list; } }