使用JAVA从redis中删除类似的patern键

时间:2013-11-27 07:30:28

标签: java redis jedis

我在java中使用jedis进行redis连接。

我想使用jedis从redis服务器中删除类似的模式密钥。 例如
1. 1_pattern
2. 2_pattern
3. 3_pattern
4. 4_pattern
5. 5_pattern

我们可以使用del(key),但它只删除一个键。

我想要del(“* _ pattern”)

之类的东西

4 个答案:

答案 0 :(得分:0)

您可以将DEL key [key ...]命令与KEYS pattern命令结合使用,以获得所需内容。

例如,您可以使用Jedis这样做(伪代码):

// or use "?_pattern" 
jedis.del(jedis.keys("*_pattern"));

但请注意,此操作可能需要很长时间,因为KEYSO(N),其中N是数据库中的键数,DEL为{{1}其中O(M)是键的数量,对于每个被删除的键,它是列表/集合/等,它是M,其中O(P)是列表/集的长度/等

答案 1 :(得分:0)

请参阅我的回答here

在你的情况下,它是对deleteKeys的简单调用(" * _ pattern");

答案 2 :(得分:0)

它应该在redis中使用正则表达式。在您的代码中:

String keyPattern = "*"+"pattern";
// or String keyPattern = "*_"+"pattern";
Set<String> keyList = jedis.keys(keyPattern);
for(String key:keyList){
    jedis.del(key);
}

//免费redis资源 我认为上述解决方案运作良好。

答案 3 :(得分:0)

最有效的方法之一是减少 redis 调用。

width