RedisManager
package com.domo.es
import java.util
import org.slf4j.{Logger, LoggerFactory}
import redis.clients.jedis.{Jedis, JedisCluster, JedisPool, ScanParams, ScanResult}
import scala.collection.JavaConversions._
import scala.collection.JavaConverters._
import scala.io.Source
object RedisManager {
private val logger: Logger = LoggerFactory.getLogger(this.getClass.getSimpleName.stripSuffix("$"))
val oneIndex = "CXSYZZ:IDX:CID"
val secondIndex = "CXSZYY:IDX:SECOND:"
def main(args: Array[String]): Unit = {
if (args.length < 1){
logger.info("#####传入的参数不能为null#####")
return
}
val keyResult = args(0)
if (keyResult == "1"){
cidDel("")
}else{
matchDel(args(0))
}
}
def cidDel(pathName: String) = {
val input: List[String] = Source.fromFile("E:\\doc\\cids.txt").getLines().toList
val jdCluster: JedisCluster = JedisUtil.getRedisTemplate
for (elem <- input) {
jdCluster.zrem(oneIndex, elem)
}
for (elem <- input) {
jdCluster.del(secondIndex + s"{${elem}}")
}
}
def matchDel(pattern: String) = {
val pn = JedisUtil.getPartitionNumber
for (i <- 0 to pn - 1) {
val jedis: Jedis = JedisUtil.getJedisByPartitionCode(i)
var scanRet = "0"
try {
do {
val params = new ScanParams()
params.`match`(s"${pattern}")
val ret = jedis.scan(scanRet, params)
scanRet = ret.getStringCursor
val result = ret.getResult.asScala.toList
for (elem <- result) {
jedis.del(elem)
logger.info(s"#####模糊匹配key为:${elem},删除成功#####" )
}
} while (!"0".equals(scanRet))
} catch {
case e: RuntimeException =>
e.printStackTrace()
} finally {
jedis.close()
}
}
}
}