Redis教程

Redis 正则扫描key并删除

本文主要是介绍Redis 正则扫描key并删除,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

扫描key

/**
     * @param key
     * @return
     * @Description: 通过Scan的方式迭代key
     */
    public Set<String> scanKeys(String key) {
        if (key == null) {
            return null;
        }
        return redisTemplate.execute((RedisCallback<Set<String>>) connection -> {
            Set<String> keys = new HashSet<>();
            Cursor<byte[]> cursor = connection.scan(ScanOptions.scanOptions().match(key).build());
            while (cursor.hasNext()) {
                keys.add(new String(cursor.next()));
            }
            return keys;
        });
    }

扫描并删除

/**
     * @param key
     * @return
     * @Description: 通过Scan的方式迭代key并删除
     */
    public Long scanAndDeleteKeys(String key) {
        if (key == null) {
            return null;
        }
        return redisTemplate.execute((RedisCallback<Long>) connection -> {
            List<byte[]> keys = new ArrayList<>();
            Cursor<byte[]> cursor = connection.scan(ScanOptions.scanOptions().match(key).build());
            while (cursor.hasNext()) {
                keys.add(cursor.next());
            }
            return connection.del(keys.toArray(new byte[keys.size()][]));
        });
    }
这篇关于Redis 正则扫描key并删除的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!