import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; public class MyJedisPool { private final static Logger logger = LoggerFactory.getLogger(MyJedisPool.class); private static JedisPool readPool = null;
private static JedisPool writePool = null; //静态代码初始化池配置
static {
try{
Properties props = new Properties();
InputStream in = MyJedisPool.class.getResourceAsStream("/redis.properties");
props.load(in); //创建jedis池配置实例
JedisPoolConfig config = new JedisPoolConfig(); //设置池配置项值
config.setMaxTotal(Integer.valueOf(props.getProperty("jedis.pool.maxActive")));
config.setMaxIdle(Integer.valueOf(props.getProperty("jedis.pool.maxIdle")));
config.setMaxWaitMillis(Long.valueOf(props.getProperty("jedis.pool.maxWait")));
config.setTestOnBorrow(Boolean.valueOf(props.getProperty("jedis.pool.testOnBorrow")));
config.setTestOnReturn(Boolean.valueOf(props.getProperty("jedis.pool.testOnReturn"))); //根据配置实例化jedis池
readPool = new JedisPool(config, props.getProperty("redisReadURL"), Integer.valueOf(props.getProperty("redisReadPort")));
writePool = new JedisPool(config, props.getProperty("redisWriteURL"), Integer.valueOf(props.getProperty("redisWritePort"))); }catch (IOException e) {
logger.info("redis连接池异常",e);
}
} /**获得jedis对象*/
public static Jedis getReadJedisObject(){
return readPool.getResource();
}
/**获得jedis对象*/
public static Jedis getWriteJedisObject(){
return writePool.getResource();
} /**归还jedis对象*/
public static void returnJedisOjbect(Jedis jedis){
if (jedis != null) {
jedis.close();
}
} }

  

import redis.clients.jedis.Jedis;

import java.util.Set;

public class RedisUtils {

    /**
* 获取hash表中所有key
* @param name
* @return
*/
public static Set<String> getHashAllKey(String name){
Jedis jedis = null;
try {
jedis = MyJedisPool.getReadJedisObject();
return jedis.hkeys(name);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
} /**
* 从redis hash表中获取
* @param hashName
* @param key
* @return
*/
public static String getHashKV(String hashName,String key){
Jedis jedis = null;
try {
jedis = MyJedisPool.getReadJedisObject();
return jedis.hget(hashName, key);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
} /**
* 删除hash表的键值对
* @param hashName
* @param key
*/
public static Long delHashKV(String hashName,String key){
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.hdel(hashName,key);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
} /**
* 存放hash表键值对
* @param hashName
* @param key
* @param value
*/
public static Long setHashKV(String hashName,String key,String value){
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.hset(hashName,key,value);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
} /**
* 删除键值对
* @param k
* @return
*/
public static Long delKV(String k){
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.del(k);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
} /**
* 放键值对
* 永久
* @param k
* @param v
*/
public static String setKV(String k, String v)
{
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.set(k, v);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
} /**
* 放键值对
*
* @param k
* @param v
*/
public static String setKV(String k,int second, String v)
{
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.setex(k,second, v);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
} /**
* 根据key取value
*
* @param k
* @return
*/
public static String getKV(String k)
{
Jedis jedis = null;
try {
jedis = MyJedisPool.getReadJedisObject();
return jedis.get(k);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
} }

  

Java Redis 连接池 Jedis 工具类的更多相关文章

  1. java使用DBCP连接池创建工具类

    1.说明 java中有个扩展包 javax下面有个DataResource的接口  javax.sql.DataResource 该接口定义了连接池的方法规范 而DBCP框架有apache公司开发,他 ...

  2. Druid 连接池 JDBCUtils 工具类的使用

    Druid工具介绍 它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. 支持所有JDBC兼容的数据库,包括Oracle.MySQL. ...

  3. DataSourceUtils(使用C3P0连接池的工具类)

    一.导入jar包(c3p0-0.9.1.2.jar) 2.添加配置文件(放在src下) 配置文件的名称:c3p0.properties 或者 c3p0-config.xml 放在src之下 c3p0. ...

  4. Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池

    如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...

  5. java操作redis redis连接池

    redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...

  6. java中redis的分布式锁工具类

    使用方式 try { if(PublicLock.getLock(lockKey)){ //这里写代码逻辑,执行完后需要释放锁 PublicLock.freeLock(lockKey); } } ca ...

  7. spring data redis jackson 配置,工具类

    spring data redis 序列化有jdk .jackson.string 等几种类型,自带的jackson不熟悉怎么使用,于是用string类型序列化,把对象先用工具类转成string,代码 ...

  8. redis连接池——JedisPool和JedisCluster的介绍与使用

    目录 Jedis使用方式的介绍 Redis连接池介绍 创建连接池配置文件 单机版的Redis连接池 集群版的Redis连接池 总结 Jedis使用方式的介绍 Jedis就是Java实现的操作Redis ...

  9. redis连接池操作

    /** * @类描述 redis 工具 * @功能名 POJO * @author zxf * @date 2014年11月25日 */public final class RedisUtil { p ...

随机推荐

  1. BZOJ4570:[SCOI2016]妖怪——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4570 邱老师是妖怪爱好者,他有n只妖怪,每只妖怪有攻击力atk和防御力dnf两种属性.邱老师立志成 ...

  2. BZOJ4898 & BZOJ5367 & 洛谷3778:[APIO2017]商旅——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4898 https://www.lydsy.com/JudgeOnline/problem.php? ...

  3. 51nod 1962 区间计数(单调栈+二分)

    维护两个单调递减的栈,当i加进栈,位置x的数弹出的时候,在另一个栈中找到和这个数一样大的数,计算贡献(x-靠右左端点)*(i-x). #include<iostream> #include ...

  4. SRM13绵津见-终(扫描线+线段树/BIT)

    题目大意:求对于每个i求有多少个合法的j以及j对于几个i是合法的,合法的定义:l[i]<=x[j]<=r[i],T[i]-y[i]<=t[j]<=T[i]+y[i]. 设a[i ...

  5. PHP 无限级分类树

    1. function generateTree($items){    $tree = array();    foreach($items as $item){        if(isset($ ...

  6. mybaties实体的 Mapper.xml文件中自定义sql时模糊查询的写法

    <select  id=selectByNameLike" parameterType="string" resultMap="BaseResultMap ...

  7. 第三方库安装——lxml

    环境 操作系统:CentOS 6.7 32-bit Python:2.6.6 安装 安装依赖软件 yum -y install gcc make python-devel libxml2-devel ...

  8. nfs挂载权限问题

    问题: 服务器A:192.168.10.230 服务器B:192.168.10.231 由于服务器A空间不足,打算将服务器A产生的数据库日志挂载到服务器B上,刚开始设定的anonuid和anongid ...

  9. 2115: [Wc2011] Xor (线性基+dfs)

    2115: [Wc2011] Xor Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 5714  Solved: 2420 题目链接:https://w ...

  10. 初学VS的目录结构

    工程目录下各文件的含义 一般大部分的文章可能介绍到上面就算结束了,但我这还没有.创建工程产生的各个文件都你知道是什么用的吗? 如果你是一个初学者,你可能会不知道(老手请跳过本文).Ok,我就带你逐一了 ...