通过获取前缀相同的key ,遍历设置key的过期时间 来删除key
package com.kaishu.spark
import java.util
import org.apache.commons.pool2.impl.GenericObjectPoolConfig
import redis.clients.jedis.{Jedis, JedisPool}
import redis.clients.jedis.util.Pool
object RedisKeyDel {
private[this] var jedisPool: Pool[Jedis] = _
/**
* 创建redis连接池
* @param host 地址
* @param port 端口号
* @param timeout 超时
* @param password 密码
*/
def init(host: String, port: Int, timeout: Int, password: String): Unit = {
jedisPool = new JedisPool(new GenericObjectPoolConfig, host, port, timeout, password)
}
def main(args: Array[String]): Unit = {
//redis测试环境
val password = "123456"
val host = "localhost"
val port = 6379
val timeout = 30000
init(host, port, timeout, password)
val jedis = jedisPool.getResource
val strings: util.Set[String] = jedis.keys("personal_information_list:device_id:" + "*")
var i = 0
/*import scala.collection.JavaConversions._
println(strings.size())*/
import scala.collection.JavaConversions._
for (t <- strings) {
//System.out.println(t)
jedis.expire(t,10)
i=i+1
println(i)
}
jedis.close()
}
}
数据太大会超时,线上环境自己看吧