Redis redis自動接続、解放例
5550 ワード
一.簡単なredisに必要なjarパッケージを構築する
commons-pool2-2.4.2.jar
spring-data-redis-1.4.0.RELEASE.jar
jedis-2.4.2.jar
この3つのバージョンのjarパケットは完全に協力することができ、jarパケットの衝突やバージョンが一致しない場合がない.redisはデータベースとして、正常なビジネスロジックに影響しません.
Javaプロジェクトでは、redisから必要なキャッシュがあるかどうかをクエリーし、データベースからクエリーしてからredisキャッシュに保存しない場合は、redisキャッシュはデータベースの機能に相当します.
二.redisプロファイル:redis.properties
三.redisプロファイルの読み込み
一.redis接続プールによる自動接続と解放
三.json変換ツール,List集合をjsonに変換し,jsonを関連オブジェクトの集合に変換する.
四.Javaでの呼び出し例
commons-pool2-2.4.2.jar
spring-data-redis-1.4.0.RELEASE.jar
jedis-2.4.2.jar
この3つのバージョンのjarパケットは完全に協力することができ、jarパケットの衝突やバージョンが一致しない場合がない.redisはデータベースとして、正常なビジネスロジックに影響しません.
Javaプロジェクトでは、redisから必要なキャッシュがあるかどうかをクエリーし、データベースからクエリーしてからredisキャッシュに保存しない場合は、redisキャッシュはデータベースの機能に相当します.
二.redisプロファイル:redis.properties
#
redis.pool.maxTotal=1000
# idel
redis.pool.maxIdle=1000
# idel
redis.pool.minIdle=10
# ,
redis.pool.maxWaitMillis=10000
# borrow Object ,
redis.pool.testOnBorrow=true
# return Object ,
redis.pool.testOnReturn=true
#“ ” , , 。 , “ ”。 -1.
redis.pool.timeBetweenEvictionRunsMillis=30000
# “ ” , ;
redis.pool.testWhileIdle=true
# “ ” , 。 3.
redis.pool.numTestsPerEvictionRun=50
#
redis.timeout=5000
#redis IP
redis.ip=127.0.0.1
#redis Port
redis.port=6379
#redis
redis.password=shenzhenair123
三.redisプロファイルの読み込み
public class LoadRedisProperties {
static Logger log = Logger.getLogger(LoadRedisProperties.class);
public static final String REDIS_PROPERTIES_PATH = "redis.properties";
public static Properties initProper() {
InputStream is = null;
Properties pro = new Properties();
try {
pro = new Properties();
is= Thread.currentThread().getContextClassLoader().getResourceAsStream(REDIS_PROPERTIES_PATH);
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}finally{
if(is != null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return pro;
}
public static void main(String[] args) {
Properties initProper = LoadRedisProperties.initProper();
System.out.println(initProper);
}
一.redis接続プールによる自動接続と解放
public class RedisUtil {
static Logger log = Logger.getLogger(RedisUtil.class);
private static JedisPool jedisPool = null;
private static Integer MAX_TOTAL = null;
private static Integer MAX_IDLE = null;
private static Integer MIN_IDLE = null;
private static Integer MAX_WAIT = null;
private static String IP = null;
private static Integer PORT = null;
private static Integer TIME_OUT = null;
private static String PASSWORD = null;
// redis
static{
Properties pro = LoadRedisProperties.initProper();
MAX_TOTAL = Integer.valueOf((String) pro.get("redis.pool.maxTotal"));
MAX_IDLE = Integer.valueOf((String) pro.get("redis.pool.maxIdle"));
MIN_IDLE = Integer.valueOf((String) pro.get("redis.pool.minIdle"));
MAX_WAIT = Integer.valueOf((String) pro.get("redis.pool.maxWaitMillis"));
IP = (String) pro.get("redis.ip");
PORT = Integer.valueOf((String) pro.get("redis.port"));
TIME_OUT = Integer.valueOf((String) pro.get("redis.timeout"));
PASSWORD = (String) pro.get("redis.password");
JedisPoolConfig config = new JedisPoolConfig();
// jedis
config.setMaxTotal(MAX_TOTAL);
//
config.setMaxIdle(MAX_IDLE);
//
config.setMinIdle(MIN_IDLE);
//
config.setMaxWaitMillis(MAX_WAIT);
//# ,
config.setTestOnReturn(true);
// jedis
config.setTestOnBorrow(true);
if(null == PASSWORD || PASSWORD.length() == 0){
jedisPool = new JedisPool(config,IP,PORT,TIME_OUT);
}else{
jedisPool = new JedisPool(config,IP,PORT,TIME_OUT, PASSWORD);
}
}
// Jedis
public synchronized static Jedis getJedis(){
if(jedisPool != null){
Jedis resource = jedisPool.getResource();
return resource;
}else{
return null;
}
}
// Jedis
public static void closeJedis(final Jedis jedis){
if(jedis != null){
jedisPool.returnResource(jedis);
}
}
public static void main(String[] args) {
Jedis jedis = getJedis();
}
}
三.json変換ツール,List集合をjsonに変換し,jsonを関連オブジェクトの集合に変換する.
public class JsonUtils {
/**
* list json
* @param
* @param ts
* @return
*/
public static String listToJson(List ts) {
String jsons = JSON.toJSONString(ts);
return jsons;
}
/**
* json List
*/
public static List jsonToList(String jsonString, Class clazz) {
@SuppressWarnings("unchecked")
List ts = (List) JSONArray.parseArray(jsonString, clazz);
return ts;
}
}
四.Javaでの呼び出し例
try {
key = fdlBsg.getAirline()+fdlBsg.getOcty()+fdlBsg.getDcty();
jedis = RedisUtil.getJedis();
String discountListJson = jedis.hget("FDL_REPORT_DATA_RATE_DISCOUNT", fdlBsg.getAirline()+fdlBsg.getOcty()+fdlBsg.getDcty());
if(null != discountListJson && discountListJson.length() > 0){
discountList = JsonUtils.jsonToList(discountListJson, DiscountMangent.class);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
RedisUtil.closeJedis(jedis);
}