java删除redis中的可用_如何删除Redis中的所有内容?

我方还有一个选择:

在我们的 生产环境 和预 生产环境 数据库中,有数千个密钥 . 我们需要不时删除一些键(通过某些掩码),按某些标准修改等等 . 当然,没有办法从CLI手动完成,特别是有分片(每个物理中有512个逻辑dbs) .

为此我编写了java客户端工具来完成所有这些工作 . 如果删除密钥,实用程序可以非常简单,只有一个类:

public class DataCleaner {

public static void main(String args[]) {

String keyPattern = args[0];

String host = args[1];

int port = Integer.valueOf(args[2]);

int dbIndex = Integer.valueOf(args[3]);

Jedis jedis = new Jedis(host, port);

int deletedKeysNumber = 0;

if(dbIndex >= 0){

deletedKeysNumber += deleteDataFromDB(jedis, keyPattern, dbIndex);

} else {

int dbSize = Integer.valueOf(jedis.configGet("databases").get(1));

for(int i = 0; i < dbSize; i++){

deletedKeysNumber += deleteDataFromDB(jedis, keyPattern, i);

}

}

if(deletedKeysNumber == 0) {

System.out.println("There is no keys with key pattern: " + keyPattern + " was found in database with host: " + host);

}

}

private static int deleteDataFromDB(Jedis jedis, String keyPattern, int dbIndex) {

jedis.select(dbIndex);

Set keys = jedis.keys(keyPattern);

for(String key : keys){

jedis.del(key);

System.out.println("The key: " + key + " has been deleted from database index: " + dbIndex);

}

return keys.size();

}

}

写这样的工具我觉得很容易,花费不超过5-10分钟 .

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值