2013-11-27 22 views
2

我在java中使用jedis进行redis连接。使用JAVA从redis中删除类似的模式键

我想删除的Redis服务器使用jedis类似的模式键。 例如
1. 1_pattern
2. 2_pattern
3. 3_pattern
4. 4_pattern
5. 5_pattern

我们可以使用德尔(关键),但将只删除一个关键。

我想要的东西,像德尔(“* _模式”)

回答

0

您可以与KEYS pattern命令结合DEL key [key ...]命令得到你想要的东西。

例如,你可以用Jedis像这样(伪)做到这一点:

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

但要注意,这个操作可能需要很长的时间,因为KEYSO(N),其中N是在按键的数量数据库DELO(M)其中M是密钥的数量,并且对于每个被删除的密钥是一个列表/集合/ etc,其O(P),其中P是列表/集合/等的长度。

0

见我的回答here

你的情况,这是对deleteKeys一个简单的调用( “* _模式”);

0

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

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

//免费Redis的资源 我认为上述方案工作做好。