我在java中使用jedis进行redis连接。使用JAVA从redis中删除类似的模式键
我想删除的Redis服务器使用jedis类似的模式键。 例如
1. 1_pattern
2. 2_pattern
3. 3_pattern
4. 4_pattern
5. 5_pattern
我们可以使用德尔(关键),但将只删除一个关键。
我想要的东西,像德尔(“* _模式”)
我在java中使用jedis进行redis连接。使用JAVA从redis中删除类似的模式键
我想删除的Redis服务器使用jedis类似的模式键。 例如
1. 1_pattern
2. 2_pattern
3. 3_pattern
4. 4_pattern
5. 5_pattern
我们可以使用德尔(关键),但将只删除一个关键。
我想要的东西,像德尔(“* _模式”)
您可以与KEYS pattern
命令结合DEL key [key ...]
命令得到你想要的东西。
例如,你可以用Jedis像这样(伪)做到这一点:
// or use "?_pattern"
jedis.del(jedis.keys("*_pattern"));
但要注意,这个操作可能需要很长的时间,因为KEYS
为O(N)
,其中N
是在按键的数量数据库DEL
是O(M)
其中M
是密钥的数量,并且对于每个被删除的密钥是一个列表/集合/ etc,其O(P)
,其中P
是列表/集合/等的长度。
见我的回答here。
你的情况,这是对deleteKeys一个简单的调用( “* _模式”);
它应该在redis中使用正则表达式。在您的代码:
String keyPattern = "*"+"pattern";
// or String keyPattern = "*_"+"pattern";
Set<String> keyList = jedis.keys(keyPattern);
for(String key:keyList){
jedis.del(key);
}
//免费Redis的资源 我认为上述方案工作做好。