Java客户端Jedis
使用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的更多相关文章
- 【转载】Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
转载地址:http://blog.csdn.net/truong/article/details/46711045 关键字:Redis的Java客户端Jedis的八种调用方式(事务.管道.分布式…)介 ...
- Redis(九):Redis的Java客户端Jedis
Redis的Java客户端Jedis导航目录: 安装JDK 安装Eclipse Jedis所需要的Jar包 Jedis常用操作 JedisPool 安装JDK tar -zxvf jdk-7u67-l ...
- 9.Redis的Java客户端Jedis
Redis的Java客户端Jedis Jedis所需jar包 commons-pool-1.6.jar jedis-2.1.0.jar 1.Jedis常用操作(jedis中的api 和 我们在 l ...
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
jedis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式 ...
- Java客户端Jedis的八种调用方式
redis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分 ...
- Redis JAVA客户端 Jedis常用方法
Jedis 是 Redis 官方首选的 Java 客户端开发包 (redis的java版本的客户端实现) #MAVEN配置 <dependency> <groupId>redi ...
- 使用Redis的Java客户端Jedis
转载自:http://aofengblog.blog.163.com/blog/static/631702120147298317919/ 前一篇文章<Redis命令指南>讲解了通过命令行 ...
- [转载] 使用Redis的Java客户端Jedis
转载自http://aofengblog.blog.163.com/blog/static/631702120147298317919/ 在实际的项目开发中,各种语言是使用Redis的客户端库来与Re ...
- Redis的java客户端jedis
导包:Jedis需要的jar包 >Commons-pool-1.6.jar >Jedis-2.1.0.jar 配置:linux防火墙设置,不会设置就关闭. 停止防火墙 systemctl ...
随机推荐
- luogu P1107 最大整数
题目描述 设有n个正整数 (n<=20), 将它们连接成一排, 组成一个最大的多位整数. 例如: n=3时, 3个整数13, 312, 343连接成的最大整数为: 34331213 又如: n= ...
- 【块状链表】AutSky_JadeK的块状链表模板+总结(STL版)
Part 1.块状链表. 定位 插入 删除 数组 O(1) O(n) O(n) 链表 O(n) O(1) O(1) 对于线性表的以上常见操作来说,数组和链表都无法有效地解决.但是,若我们将链表的每 ...
- Scala零基础教学【81-89】
第81讲:Scala中List的构造是的类型约束逆变.协变.下界详解 首先复习四个概念——协变.逆变.上界.下界 对于一个带类型参数的类型,比如 List[T]: 如果对A及其子类型B,满足 List ...
- [转]iOS ARC机制 weak strong
写在开头 虽然距离WWDC2011和iOS 5已经快一年时间,但是很多开发者并没有利用新方法来提高自己的水平,这点在ARC的使用上非常明显(特别是国内,基本很少见到同行转向ARC).我曾经询问过一些同 ...
- git新建和删除远程分支
创建远程分支: 新建本地分支 git checkout -b branch_name 推送到远程分支,分支名字和本地分支名字相同 git push origin branch_name:branch_ ...
- Fedora 修改时区、日期、时间
# tzselect 修改时间命令 [root@comput1 ~]# tzselectPlease identify a location so that time zone rules can b ...
- tile uv
alpha通道 用uvtile分成4份 可以放4张masks 真省 省贴图,手机对精度要求不那么高
- 高精度整数 - a+b(王道)
题目描述: 实现一个加法器,使其能够输出a+b的值. 输入: 输入包括两个数a和b,其中a和b的位数不超过1000位. 输出: 可能有多组测试数据,对于每组数据,输出a+b的值 样例输入: 2 6 1 ...
- ITIL是什么
ITIL是什么 ITIL&CMDB 番外: ITIL&互联网 ITIL是什么 ITIL即IT基础架构库(Information Technology Infrastructure Li ...
- WPF动画制作简单的按钮动画
主界面的代码 <StackPanel ButtonBase.Click="Grid_Click"> <Button Content="逐渐变大缩小&qu ...