使用Jedis的Java客户端

maven依赖

<!-- jedis -->
<dependency>
<groupid>redis.clients</groupid>
jedis</artifactid>
<version>2.9.</version>
</dependency> <!-- fastjson -->
<dependency>
<groupid>com.alibaba</groupid>
fastjson</artifactid>
<version>1.2.</version>
</dependency>

使用Jedis连接池

JedisUtil.java

package com.wishfulcloud.commons.dataSource.redis.jedis;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool; /**
* Jedis 工具类
*
*
* @author wangxuezheng
* @date 2017年3月21日 下午3:28:18
* @version V1.0
*
*/
public class JedisUtil { private static volatile GenericObjectPoolConfig poolConfig = null; static{
poolConfig = new GenericObjectPoolConfig(); // 最大连接数为默认值的5倍
poolConfig.setMaxTotal(GenericObjectPoolConfig.DEFAULT_MAX_TOTAL * );
// 最大空闲连接数为默认值的3倍
poolConfig.setMaxIdle(GenericObjectPoolConfig.DEFAULT_MAX_IDLE * );
// 最小空闲连接数为默认值的2倍
poolConfig.setMinIdle(GenericObjectPoolConfig.DEFAULT_MIN_IDLE * );
// 开启jmx功能
poolConfig.setJmxEnabled(true);
// 连接池没有连接后客户端的最大等待时间(单位 毫秒)
poolConfig.setMaxWaitMillis();
} private static volatile JedisPool jedisPool = null; private JedisUtil(){} /**
* 从连接池中获取一个Jedis实例
*
* @return
*/
public static Jedis getJedisInstance() throws Exception{ try {
if(null == jedisPool){
synchronized (JedisUtil.class){
if(null == jedisPool){
jedisPool = new JedisPool(poolConfig,"192.168.1.218",);
}
}
}
} catch (Exception e) {
throw e;
}
return jedisPool.getResource();
} /**
* 归还到连接池
*
* @param jedis
*/
public static void close(Jedis jedis) throws Exception{
try {
if(null != jedis){
jedis.close();
}
} catch (Exception e) {
throw e;
}
}
}

BaseCache.java

package com.wishfulcloud.commons.dataSource.redis.jedis;

import com.alibaba.fastjson.JSON;

import redis.clients.jedis.Jedis;

/**
* 单机或着主从复制 ,Jedis Java 客户端
*
* @author wangxuezheng
* @date 2017年3月21日 下午3:55:26
* @version V1.0
*
*/
public class BaseCache<t> { /**
* 保存或者更新一个实体
*
* 如果seconds参数值不为0的话,则是过期缓存,具有缓存时长
*
* @param jedis
* @param entity 实体对象
* @param id 实体主键
* @param seconds 有效时长多少秒
*
* @return true 保存或更新成功
* false 保存或更新失败
*/
public Boolean saveOrUpdate(Jedis jedis, T entity, String id, int seconds){
String key = entity.getClass().getSimpleName().toLowerCase() + ":" + id;
String ok = jedis.set(key , JSON.toJSONString(entity));
if (seconds != ){
jedis.expire(key, seconds);
}
return "OK".equals(ok);
} /**
* 根据类型和id获取一个实体,未获取到返回 null
*
* @param jedis
* @param clazz 实体.class
* @param id 主键id
*
* @return T 或着 null
*/
public T getById(Jedis jedis, Class<t> clazz, String id){
String object = jedis.get(clazz.getSimpleName().toLowerCase() + ":" +id);
return JSON.parseObject(object, clazz);
} /**
* 根据id删除一个实体对象
*
* @param jedis
* @param clazz 实体.class
* @param id 主键id
* @return true 删除成功
* false 删除失败
*
*/
public Boolean deleteEntity(Jedis jedis, Class<t> clazz, String id){
String key = clazz.getSimpleName().toLowerCase() + ":" +id;
return jedis.del(key) > ;
} }

Java客户端Jedis的更多相关文章

  1. 【转载】Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍

    转载地址:http://blog.csdn.net/truong/article/details/46711045 关键字:Redis的Java客户端Jedis的八种调用方式(事务.管道.分布式…)介 ...

  2. Redis(九):Redis的Java客户端Jedis

    Redis的Java客户端Jedis导航目录: 安装JDK 安装Eclipse Jedis所需要的Jar包 Jedis常用操作 JedisPool 安装JDK tar -zxvf jdk-7u67-l ...

  3. 9.Redis的Java客户端Jedis

    Redis的Java客户端Jedis Jedis所需jar包   commons-pool-1.6.jar jedis-2.1.0.jar 1.Jedis常用操作(jedis中的api 和 我们在 l ...

  4. Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍

    jedis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式 ...

  5. Java客户端Jedis的八种调用方式

      redis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分 ...

  6. Redis JAVA客户端 Jedis常用方法

    Jedis 是 Redis 官方首选的 Java 客户端开发包 (redis的java版本的客户端实现) #MAVEN配置 <dependency> <groupId>redi ...

  7. 使用Redis的Java客户端Jedis

    转载自:http://aofengblog.blog.163.com/blog/static/631702120147298317919/ 前一篇文章<Redis命令指南>讲解了通过命令行 ...

  8. [转载] 使用Redis的Java客户端Jedis

    转载自http://aofengblog.blog.163.com/blog/static/631702120147298317919/ 在实际的项目开发中,各种语言是使用Redis的客户端库来与Re ...

  9. Redis的java客户端jedis

    导包:Jedis需要的jar包 >Commons-pool-1.6.jar >Jedis-2.1.0.jar 配置:linux防火墙设置,不会设置就关闭. 停止防火墙 systemctl ...

随机推荐

  1. [BZOJ 2768] 冠军调查

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=2768 Solution: 一道比较基础的最大流的题目 一般看到将点分为两类的题目就要往网 ...

  2. 【置换群】Codeforces Round #393 (Div. 1) A. Pavel and barbecue

    就是先看排列p,必须满足其是一个环,才满足题意.就处理出有几个环,然后把它们合起来,答案就是多少. 然后再看序列b,自己稍微画一画就会发现,如果有偶数个1肯定是不行哒,否则,它就会再置换一圈回到它自己 ...

  3. 【单调队列】bzoj1047 [HAOI2007]理想的正方形

    先把整个矩阵处理成b[n][m-K+1].c[n][m-K+1]大小的两个矩阵,分别存储每行每K个数中的最大.最小值,然后再通过b.c处理出d.e分别表示K*K大小的子矩阵中的最大.最小值即可.单调队 ...

  4. 摄氏度和华氏度之间的额转换 Exercise06_08

    /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:摄氏度和华氏度之间的额转换 * */ public class Exercise06_08 { public static v ...

  5. 通信编码解码 c11 实现 [ lua 专用版]

    #include <istream> #include <ostream> #include <iostream> #include <strstream&g ...

  6. npm使用常见问题及注意事项

    1.npm.cnpm.yarn不要混用,一个项目只使用一个 2.NPM problem: npm ERR! extraneous 表明安装了很多不需要的三方包 使用命令 npm prune删除无用的包 ...

  7. 【MySQL】海量量数据查询优化

    参考资料: mysql处理海量数据时的一些优化查询速度方法:http://www.cnblogs.com/lingiu/p/3414134.html mysql千万级大数据SQL查询优化:http:/ ...

  8. DNN CMS Platform

    http://dotnetnuke.codeplex.com/downloads/get/1458710

  9. 基于zookeeper+leveldb搭建activemq集群--转载

    原地址:http://www.open-open.com/lib/view/open1410569018211.html 自从activemq5.9.0开始,activemq的集群实现方式取消了传统的 ...

  10. 复选框input:checkbox

      复选框 CreateTime--2017年6月5日14:04:55Author:Marydon 五.复选框 (一)语法 <input type="checkbox" /& ...