大数据常用工具类——redisUtil
Posted Z-hhhhh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据常用工具类——redisUtil相关的知识,希望对你有一定的参考价值。
redis工具类
一、所需pom依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.7.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.8.0-beta0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.8.0-beta0</version>
</dependency>
二、redis.properties
#redis服务器ip
redis_host=192.168.xxx.xxx
#redis服务端口
redis_port=6379
#redis验证密码(如果有)
redis_password=xxxx
#redis操作超时
redis_timeout=10000
#redis所选库
redis_db=1
#redis最大等待连接中的数量
redis_maxidle=10
#redis最小等待连接中的数量
redis_minidle=2
#redis最大数据库连接数
redis_maxtotal=20
三、redisUtil.java
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class redisUtil{
//如果配置文件里有,则使用配置文件中的,若无,则使用这里的
private static JedisPool pool = null;
private static String ip = "localhost";
private static int port = 6379;
private static String auth = "";
//配置文件地址
private static File getPath() {
return new File("src/main/resources/redis.properties");
}
//初始化连接池
private static JedisPoolConfig initConfig() {
JedisPoolConfig config = new JedisPoolConfig();
Properties p = new Properties();
try {
File path = getPath();
if (!path.exists()) {
System.err.println("configuration file not found Exception : redis.properties");
return config;
}
//读取配置文件
p.load(new FileReader(path));
//设置连接池,配置文件设置为默认值
ip = p.getProperty("jedis.datasource.ip", ip);
port = Integer.parseInt(p.getProperty("jedis.datasource.port", String.valueOf(port)));
auth = p.getProperty("jedis.datasource.auth", auth);
if (p.containsKey("jedis.pool.maxActive")) {
config.setMaxTotal(Integer.parseInt(p.getProperty("jedis.pool.maxActive")));
}
if (p.containsKey("jedis.pool.maxIdle")) {
config.setMaxIdle(Integer.parseInt(p.getProperty("jedis.pool.maxIdle")));
}
if (p.containsKey("jedis.pool.maxWait")) {
config.setMaxWaitMillis(Integer.parseInt(p.getProperty("jedis.pool.maxWait")));
}
if (p.containsKey("jedis.pool.testOnBorrow")) {
config.setTestOnBorrow(Boolean.parseBoolean(p.getProperty("jedis.pool.testOnBorrow")));
}
if (p.containsKey("jedis.pool.testOnReturn")) {
config.setTestOnReturn(Boolean.parseBoolean(p.getProperty("jedis.pool.testOnReturn")));
}
} catch (IOException e) {
e.printStackTrace();
}
return config;
}
private static synchronized void initPool() {
if (null == pool) {
JedisPoolConfig config = initConfig();
pool = new JedisPool(config, ip, port, 5000, auth);
}
}
public static Jedis getResource() {
if (null == pool) {
initPool();
}
return pool.getResource();
}
public static void returnResource(Jedis resource) {
if (null != pool) {
pool.returnResource(resource);
} else {
resource.close();
}
}
//关闭连接,一般不关闭
public static void close() {
if (null != pool) {
pool.close();
}
}
}
四、测试工具类
RedisTest.java
public class RedisTest {
public static void main(String[] args) {
Jedis jedis = RedisUitl.getResource();
jedis.set("name1","zwh");
System.out.println(jedis.get("name1"));
//System.out.println(jedis.ttl("name1"));
Kedis.returnResource(jedis);
}
}
以上是关于大数据常用工具类——redisUtil的主要内容,如果未能解决你的问题,请参考以下文章