Redis在JAVA中的运用(工具类)
最近项目需要用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中的运用(工具类)的更多相关文章
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- Java 中的并发工具类
Java 中的并发工具类 CountDownLatch public class JoinCountDownLatchTest { public static void main(String[] a ...
- java中常用的工具类(一)
我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...
- java中常用的工具类(三)
继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 ...
- java中常用的工具类(二)
下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Java中的并发工具类(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)
在JDK的并发包里提供了很多有意思的并发工具类.CountDownLatch.CyclicBarrier和Semaphore 工具类提供了一种并发流程控制的手段,Exchanger 工具类则提供了在线 ...
- 在JAVA中封装JSONUtil工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- 在JAVA中封装JSONUtils工具类及使用 (转)
import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util. ...
- Java中Arrays数组工具类的使用全解
本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...
随机推荐
- 自定义 JSON 对象
针对 IE9 以下不支持 JSON 对象的处理方式,网上大部分自定义的方式无形之中都会将中文转码为 Unicode 编码格式的字符换,但是在浏览器中我们有无法察觉到(浏览器自己解析成 UTF8 了), ...
- C#调用WebService (转)
1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...
- SQL Server取datetime的日期部分
在c#中有个Date属性用于返回日期,其实就是当天0点. DateTime dtNow = DateTime.Now; DateTime dtNow2 = dtNow.Date; Console.Wr ...
- IE9浏览器中的My97日历控件刷新后无法打开问题解决办法
解决办法如下: 1:找到WdatePicker.js 2:将$crossFrame:true 改为$crossFrame:false. 3:重启服务,刷新页面发现OK.
- [综合]visio2013安装提示找不到Office.zh_cn\officeMUI.mis officemui.xml
在visio2013安装提示找不到Office.zh_cn\officeMUI.mis officemui.xml 等等,各种提示,可是打开安装程序所在的ISO,里面可是“赶集网”——啥都有啊.上网查 ...
- RabbitMQ高可用方案总结
RabbitMQ的集群方案有以下几种: 1.普通的集群 exchange,buindling再所有的节点上都会保存一份,但是queue只会存储在其中的一个节点上,但是所有的节点都会存储一份queue的 ...
- vi编辑器的常规使用
1.命令模式(command mode)-执行命令 在该模式中,可以输入命令来执行许多种功能.控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入Insert mode下,或者到 last l ...
- WebStorm 11、PhpStorm 10免费激活(不需要注册码)
之前分享的WebStorm9.WebStrom10.PhpStorm9注册码生成网站已经被站长关了,比较遗憾!http://my.oschina.net/ximidao/blog/486353 现在官 ...
- AutoMagic
AutoMagic 是一个基于WebUI的自动化管理平台.为什么叫AutoMagic呢?因为自动化(Automation)在执行起来的时候是一个很神奇的事情,它可以无人值守的模拟人的操作,就像魔术(M ...
- 微信小程序实例
看到小程序,那么火,自己也想动手写一个.但是没有很好的api接口.有一天看到一个开发安卓的朋友,写了一个干货集中营的小程序.就搜了一下.看到api是免费开放的.于是自己也动手写了一个. 具体的微信小程 ...