/**
* Author: XiaoLiu
* Date: 2019/6/21 9:57
* Remark:
*/
package com.xl.proplet.utils;
import com.xl.proplet.cache.BaseContents;
import com.xl.proplet.dto.BaseDTO;
import com.xl.proplet.errors.ErrTypeEnum;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.exceptions.JedisConnectionException;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.*;
public class CacheUtils {
private static String REDIS_SERVER_HOST = null;
private static int REDIS_SERVER_PORT = 6379;
private static int REDIS_SERVER_TIMEOUT = 2000;
private static String REDIS_USER_ACCT = null;
private static String REDIS_USER_APWD = null;
private static JedisPool REDIS_DBLINK_POOL = null;
private static boolean REDIS_DATA_SAFE = false;
private static boolean REDIS_SERVICE_STATE = false;
private static String REDIS_SERVICE_MSGER = "Connection fail";
private static final String REDIS_DATA_PREX = "SAFER_";
public static final String REDIS_PROPLET_MARK = "_marker_";
public static final String REDIS_PROPLET_PARAM = "_params_";
public static final String CACHE_FILE_DETAIL = "_pptp_file_detail_";
public static final String CACHE_FILE_STREAM = "_pptp_file_stream_";
public static final String REDIS_PROPLET_USER = "_user_";
public static final String REDIS_PROPLET_ULOG = "_uloger_";
public static final String REDIS_PROPLET_VLOG = "_vloger_";
public static final String REDIS_WEBASE_DATA = "_wedata_";
public static final String REDIS_WEBASE_ADVT = "_weadvt_";
public static final String REDIS_WEBASE_IMAGE = "_weimge_";
public static final String REDIS_WEBASE_IMGER = "_weimgs_";
public static final String REDIS_WEBASE_TOTAL = "_total_";
public static final String REDIS_MEDATA_DABARN = "_dabarn_";
public static final String REDIS_MEDATA_DAITEM = "_daitem_";
public static final String REDIS_EXPIRE_KEYER = "_expire_";
public static void initTester() throws Exception {
CacheUtils.REDIS_SERVER_HOST = "localhost";
CacheUtils.REDIS_USER_APWD = "bluesky";
CacheUtils.REDIS_SERVICE_STATE = true;
}
public static synchronized void initLinkPool() throws Exception {
String temp = null;
if (BaseUtils.isEmpty(CacheUtils.REDIS_DBLINK_POOL)) {
if (BaseUtils.isEmpty(CacheUtils.REDIS_SERVER_HOST)) {
temp = BaseUtils.getLocalParam("redis_host", "redis", false);
if (!BaseUtils.isEmpty(temp)) {
CacheUtils.REDIS_SERVER_HOST = temp;
temp = BaseUtils.getLocalParam("redis_port", "redis", false);
if (!BaseUtils.isEmpty(temp)) {
CacheUtils.REDIS_SERVER_PORT = Integer.parseInt(temp);
}
temp = BaseUtils.getLocalParam("redis_apwd", "redis", false);
if (!BaseUtils.isEmpty(temp)) {
CacheUtils.REDIS_USER_APWD = temp;
}
temp = BaseUtils.getLocalParam("redis_safe", "redis", false);
if ("1".equals(temp)) {
CacheUtils.REDIS_DATA_SAFE = true;
}
}
}
if (!BaseUtils.isEmpty(CacheUtils.REDIS_SERVER_HOST)) {
JedisPoolConfig config = new JedisPoolConfig();
temp = BaseUtils.getLocalParam("redis_pool_maxlink", "redis", false);
if (!BaseUtils.isEmpty(temp)) {
temp = "1000";
}
config.setMaxTotal(Integer.parseInt(temp));
temp = BaseUtils.getLocalParam("redis_pool_maxidle", "redis", false);
if (!BaseUtils.isEmpty(temp)) {
temp = "50";
}
config.setMaxIdle(Integer.parseInt(temp));
temp = BaseUtils.getLocalParam("redis_safe", "redis", false);
config.setMinIdle(10);
config.setBlockWhenExhausted(true);
config.setMaxWaitMillis(1000);
config.setTestWhileIdle(true);
config.setTimeBetweenEvictionRunsMillis(30 * 60 * 1000);
config.setMinEvictableIdleTimeMillis(30 * 60 * 100);
if (BaseUtils.isEmpty(CacheUtils.REDIS_USER_APWD)) {
CacheUtils.REDIS_DBLINK_POOL = new JedisPool(config, CacheUtils.REDIS_SERVER_HOST, CacheUtils.REDIS_SERVER_PORT, CacheUtils.REDIS_SERVER_TIMEOUT);
} else {
CacheUtils.REDIS_DBLINK_POOL = new JedisPool(config, CacheUtils.REDIS_SERVER_HOST, CacheUtils.REDIS_SERVER_PORT, CacheUtils.REDIS_SERVER_TIMEOUT, CacheUtils.REDIS_USER_APWD);
}
if(!BaseUtils.isEmpty(CacheUtils.REDIS_DBLINK_POOL)) {
boolean flag=CacheUtils.doDBChecker();
if(flag){
CacheUtils.REDIS_SERVICE_MSGER = "Connection ok";
CacheUtils.REDIS_SERVICE_STATE = true;
}else{
CacheUtils.REDIS_SERVICE_STATE = false;
CacheUtils.REDIS_SERVICE_MSGER = "Connection fail";
}
}else{
CacheUtils.REDIS_SERVICE_STATE = false;
CacheUtils.REDIS_SERVICE_MSGER = "Connection fail";
}
} else {
CacheUtils.REDIS_SERVICE_STATE = false;
CacheUtils.REDIS_SERVICE_MSGER = "Connection fail";
}
}
}
public static Jedis getRedis() throws Exception {
String temp = null;
Jedis redis = null;
if (CacheUtils.REDIS_SERVICE_STATE) {
if (BaseUtils.isEmpty(CacheUtils.REDIS_DBLINK_POOL)) {
CacheUtils.initLinkPool();
}
if (!BaseUtils.isEmpty(CacheUtils.REDIS_DBLINK_POOL)) {
redis = CacheUtils.REDIS_DBLINK_POOL.getResource();
}
}
return redis;
}
public static BaseDTO getState() throws Exception {
BaseDTO resDto = new BaseDTO();
if (CacheUtils.REDIS_SERVICE_STATE) {
resDto.put("flag", "1");
} else {
resDto.put("flag", "0");
}
resDto.put("type", "redis");
resDto.put("msger", CacheUtils.REDIS_SERVICE_MSGER);
resDto.put("host", CacheUtils.REDIS_SERVER_HOST);
resDto.put("port", CacheUtils.REDIS_SERVER_PORT);
if (!BaseUtils.isEmpty(CacheUtils.REDIS_DBLINK_POOL)) {
resDto.put("link", CacheUtils.REDIS_DBLINK_POOL.getNumActive() + "-" + CacheUtils.REDIS_DBLINK_POOL.getNumIdle() + "-" + CacheUtils.REDIS_DBLINK_POOL.getNumWaiters());
} else {
resDto.put("link", "0-0-0");
}
return resDto;
}
public static boolean doDBChecker() throws Exception {
boolean flag = false;
Jedis redis = null;
try {
redis = CacheUtils.getRedis();
if (!BaseUtils.isEmpty(redis)) {
CacheUtils.putData("time_checker", BaseUtils.getSysTime("2"));
flag = true;
}
} catch (JedisConnectionException e) {
e.printStackTrace();
CacheUtils.REDIS_SERVICE_MSGER = "Connection fail";
CacheUtils.doClose();
} catch (Exception e) {
flag = false;
CacheUtils.REDIS_SERVICE_STATE = false;
} finally {
CacheUtils.doBackRedis(redis);
}
return
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java-jedis-redis.rar (2个子文件)
jedis-2.9.0.jar 541KB
CacheUtils.java 43KB
共 2 条
- 1
资源评论
指尖行者
- 粉丝: 3
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功