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. [BZOJ5463] [APIO2018] 铁人两项

    题目链接 LOJ. BZOJ. Solution 先建圆方树. 我们考虑暴力,枚举一个点对,我们枚举的点都是圆点,然后统计中间那个点可以取的位置的数量,加起来就是答案. 那么怎么统计呢,我们对于每个点 ...

  2. 周记【距gdoi:133天】

    蔡大神坚持每天写日记记录他所剩的oi生涯. 可是我呢?自从搞完数据结构后都不知道在干什么,整天在傻叉.也许是给自己压力太大了,或许是真的自己在迷茫以及犹豫,更或者自己真的是想太多不想写题,觉得烦了,没 ...

  3. 【SPOJ】Highways(矩阵树定理)

    [SPOJ]Highways(矩阵树定理) 题面 Vjudge 洛谷 题解 矩阵树定理模板题 无向图的矩阵树定理: 对于一条边\((u,v)\),给邻接矩阵上\(G[u][v],G[v][u]\)加一 ...

  4. excel 列索引(数字)转列名

    function index2ColName($columnNumber) { $dividend = $columnNumber; while ($dividend > 0) { $modul ...

  5. pushViewController:animated:的问题

    1.在AppDelegate.m中: 2.在SecondViewController.h中: 3.在FirstViewController.m中: 4.在SecondViewController.m中 ...

  6. [mysql]tpcc相关及画图

    参考:http://blog.chinaunix.net/uid-26896862-id-3563600.html 参考:http://blog.chinaunix.net/uid-25266990- ...

  7. css 常用苹方字体

    // 苹方-简 常规体 font-family: PingFangSC-Regular, sans-serif; // 苹方-简 极细体 font-family: PingFangSC-Ultrali ...

  8. Hexo&Github-Pages搭建个人博客

    some基础知识 hexo hexo是一款基于Node.js的静态博客框架 github-pages说明 github有两种主页,一种是github-page(个人主页),一种是项目主页,本教程针对个 ...

  9. Flask中路由原理

    在Flask内部使用两张表维护路由: url_map :维护URL规则和endpoint的映射 view_functions :维护endpoint和视图函数的映射. 以用户访问URL/home为例, ...

  10. mysql数据库cmd直接登录

    找到mysql的安装路径: 将该路径配置到环境变量中: win+R代开dos窗口:输入mysql -uroot -p回车,输入密码.