最近项目需要用redis在中间做缓存所以写了一个工具类作为练习用

redis版本:redis_version:3.0.504

用到阿里的解析JSON的库:fastjson

import org.apache.log4j.Logger;
import org.apache.log4j.chainsaw.Main;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; /**
* @Description:redis工具类
* @ClassName:
* @date 2016年10月31日 上午11:25:06
*/
@SuppressWarnings("unused")
public class RedisUtils
{
private static final String IP = "127.0.0.1"; // ip
private static final int PORT = 6379; // 端口
private static final String AUTH=""; // 密码(原始默认是没有密码)
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;
private static Logger logger = Logger.getLogger(RedisUtils.class);
/**
* 初始化线程池
*/
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();
String code = jedis.set(key, value);
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);
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();
}
} }

  

Redis在JAVA中的运用(工具类)的更多相关文章

  1. JAVA中封装JSONUtils工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

  2. Java 中的并发工具类

    Java 中的并发工具类 CountDownLatch public class JoinCountDownLatchTest { public static void main(String[] a ...

  3. java中常用的工具类(一)

    我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...

  4. java中常用的工具类(三)

    继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类       ...

  5. java中常用的工具类(二)

    下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil           Java   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  6. Java中的并发工具类(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)

    在JDK的并发包里提供了很多有意思的并发工具类.CountDownLatch.CyclicBarrier和Semaphore 工具类提供了一种并发流程控制的手段,Exchanger 工具类则提供了在线 ...

  7. 在JAVA中封装JSONUtil工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

  8. 在JAVA中封装JSONUtils工具类及使用 (转)

    import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util. ...

  9. Java中Arrays数组工具类的使用全解

    本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...

随机推荐

  1. VB中键盘每个按键所对应的具体数值是?

    键码常数 值 描述 vbKeyLButton 1 鼠标左键 vbKeyRButton 2 鼠标右键 vbKeyCancel 3 CANCEL 键 vbKeyMButton 4 鼠标中键 vbKeyBa ...

  2. dll 日志文件 放在同一个目录。

    string strPath = "log.txt"; 如果日志问价跟dll文件放在一起,直接这么些就可以了.

  3. ADB简单基础命令

    1.查看设备 adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 2.安装软件 adb install adb install :这个命令将 ...

  4. oracle wrapped 代码解密工具 unwraper

    Oracle中的Wrap 功能是为了不让别人看到函数/存储过程的SQL源码的明文, 作为技术宅,有的时候想看源码但是看不到的那种心情是可以理解的, 发一个简单易用的 Oracle wrapped 解码 ...

  5. django关系对象映射(Object Relational Mapping,简称ORM)

    Model 创建数据库,设计表结构和字段 django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表 from django.db import models clas ...

  6. 【GO】GO语言学习笔记二

    基本类型: 布尔型:boolean 整型:int8,byte,int16,int,uint,uintptr等 浮点型:float32,float64 复数类型:complex64,complex128 ...

  7. weboffice控件使用不能嵌入网页

    var s = ""s += "<object id=WebOffice1 height=586 width='100%' style='LEFT: 0px; TO ...

  8. java中的泛型和sql中的索引

    sql中的索引 索引:好处查询的速度快,被删除,修改,不会对表产生影响,作用是加速查询: 一种典型的数据库对象 作用:提交数据的查询效率,尤其对一些数据量很大的表 索引是用来为表服务的 索引是orac ...

  9. Android多媒体--MediaCodec 中文API文档

    *由于工作需要,需要利用MediaCodec实现Playback及Transcode等功能,故在学习过程中翻译了Google官方的MediaCodec API文档,由于作者水平限制,文中难免有错误和不 ...

  10. 【前端】JSON.stringfy 和 JSON.parse(待续)

    JSON.stringfy 和 JSON.parse(待续) 支持全局对象JSON的浏览器有:IE8+, FireFox3.5+, Safari4+, Chrome, Opera10.5+ JSON. ...