package com.yanshu.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yanshu.enums.ResultEnums;
import com.yanshu.pojo.RedisTable;
import com.yanshu.tools.ResultsUtils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Protocol;
import redis.clients.jedis.exceptions.JedisException;
public class RedisUtils {
// private static String host="106.75.132.229";
//
// private static Integer prot=6379;
//
// private static String auth="zxc321";
//
// private static Integer datanum=14;
private static final String IP = "127.0.0.1"; // ip
private static final int PORT = 6379; // 端口
private static final String AUTH=""; // 密码(原始默认是没有密码)
private static final Integer datanum=14; // 选择链接库
private static int MAX_ACTIVE = 1024; // 最大连接数
private static int MAX_IDLE = 200; // 设置最大空闲数
private static int MAX_WAIT = 10000; // 最大连接时间
private static int TIMEOUT = 10000; // 超时时间
private static boolean BORROW = true; // 在borrow一个事例时是否提前进行validate操作
private static JedisPool pool = null; // 设置redis 连接池
private static Logger logger =LoggerFactory.getLogger (RedisUtils.class);
// public String saveRedisTable(String taskname,String savestite,String taskurl ){
//
// System.out.println("taskname="+taskname);
// System.out.println("savestite="+savestite);
// System.out.println("taskurl="+taskurl);
// if(AppUtil.isNullorEmpty(taskname)||AppUtil.isNullorEmpty(taskurl)){
// return JSON.toJSONString(ResultsUtils.error(ResultEnums.PARAMES_NULL));
// }
// Map<Object,Object> map=new HashMap<>();
// Jedis jedis = new Jedis(host,prot);
// jedis.auth(auth);
// jedis.select(datanum);
System.out.println("Connection to server sucessfully");
// System.out.println(jedis.ping());
// String key = "rds:task05";
// RedisTable redisTable=new RedisTable();
// String date2TimeStamp = Date2TimeStamp(new Date());
//
// redisTable.setSucceedDate(date2TimeStamp);
// redisTable.setTaskName(taskname);
// redisTable.setSaveSite(savestite);
// // 店铺 false
// if("shopsearch.py".equals(taskname)){
// redisTable.setProxy("False");
// List<Object> addurl2 = addurl("https://shopsearch.taobao.com/search?data-value=sale-desc&ajax=true&callback=shopInfo&app=shopsearch&q="+taskurl);
// redisTable.setTaskUrl(addurl2);
// }
// else if("taoBao.py".equals(taskname)){ // 商品详情 True
// String addurl = geturl(taskurl);
// List<Object> addurl2 = addurl(addurl);
// redisTable.setTaskUrl(addurl2);
// redisTable.setProxy("True");
// }
// else if ("catSearch.py".equals(taskname)){ // 类目 False
// redisTable.setProxy("False");
// }
// redisTable.setHeaders(map);// 还没有做
// String sdf=JSON.toJSONString(redisTable).replaceAll("\"","\'");
// Long lpush = jedis.lpush(key, sdf);
// if(lpush>0){
// return JSON.toJSONString("添加成功,现在一共有"+lpush+"条");
// }
//
// return null;
// }
/**
* 初始化线程池
*/
static
{
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(BORROW);
pool = new JedisPool(config, IP, PORT, TIMEOUT);
}
/**
* 获取连接
*/
public static synchronized Jedis getJedis()
{
try
{
if(pool != null)
{
return pool.getResource();
}
else
{
return null;
}
}
catch (Exception e) {
logger.info("连接池连接异常");
return null;
}
}
/**
* @Description:设置失效时间
* @param @param key
* @param @param seconds
* @param @return
* @return boolean 返回类型
*/
public static void disableTime(String key,int seconds)
{
Jedis jedis = null;
try
{
jedis = getJedis();
jedis.expire(key, seconds);
}
catch (Exception e) {
logger.debug("设置失效失败.");
}finally {
getColse(jedis);
}
}
/**
* @Description:插入对象
* @param @param key
* @param @param obj
* @param @return
* @return boolean 返回类型
*/
public static boolean addObject(String key,Object obj)
{
Jedis jedis = null;
String value = JSONObject.toJSONString(obj);
try
{
jedis = getJedis();
// jedis.select(2); 选择存储地址
String code = jedis.set(key, value).toLowerCase(); // 转化成小写的
if(code.equals("ok"))
{
return true;
}
}
catch (Exception e) {
logger.debug("插入数据有异常.");
return false;
}finally {
getColse(jedis);
}
return false;
}
/**
* @Description:存储key~value
* @param @param key
* @param @param value
* @return void 返回类型
*/
public static boolean addValue(String key,String value)
{
Jedis jedis = null;
try
{
jedis = getJedis();
String code = jedis.set(key, value).toLowerCase();
if(code.equals("ok"))
{
return true;
}
}
catch (Exception e) {
logger.debug("插入数据有异常.");
return false;
}finally {
getColse(jedis);
}
return false;
}
/**
* @Description:删除key
* @param @param key
* @param @return
* @return boolean 返回类型
*/
public static boolean delKey(String key)
{
Jedis jedis = null;
try
{
jedis = getJedis();
Long code = jedis.del(key);
if(code > 1)
{
return true;
}
}
catch (Exception e) {
logger.debug("删除key异常.");
return false;
}finally {
getColse(jedis);
}
return false;
}
/**
* @Description: 关闭连接
* @param @param jedis
* @return void 返回类型
*/
public static void getColse(Jedis jedis)
{
if(jedis != null)
{
jedis.close();
}
}
public static void main(String[] args) {
// Jedis jedis = getJedis();
// System.out.println(jedis.ping());
// jedis.select(datanum);
boolean addObject = addObject("task","abc");
System.out.println(addObject);
}
}
jedis操作工具类
最新推荐文章于 2018-05-20 17:38:24 发布