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 ...
随机推荐
- 【R笔记】order函数例子
问题: R中提供的例子不太懂,为什么得出的结果是6 5 2 1 7 4 10 8 3 9呢? (ii <- order(x <- c(1,1,3:1,1:4,3), y & ...
- JavaScript的=、==和===
(1) 百度知道上的解释: = 为对象赋值 == 表示两个对象toString值相等 === 表示两个对象类型相同且值相等 (2) 知乎上的解释: 绝大多数场合应该使用 === ,只有检测 null ...
- 开源的库RestSharp轻松消费Restful Service
现在互联网上的服务接口都是Restful的,SOAP的Service已经不是主流..NET/Mono下如何消费Restful Service呢,再也没有了方便的Visual Studio的方便生产代理 ...
- 现在就可以使用的5个 ES6 特性
小编推荐:掘金是一个高质量的技术社区,从 ECMAScript 6 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技术干货.各大应用市场搜索「掘金」即可下载APP,技术干货尽在掌握. ...
- 关于 Delphi 中流的使用(2) 用 TFileStream(文件流) 读写
TStream 是一个抽象的基类, 不能直接生成对象. 在具体的应用中, 主要使用它的子孙类:TFileStream: 文件流TStringStream: 字符串流TMemoryStream: 内存流 ...
- vmware三种网络连接模式区别
vmware有三种网络连接模式分别是 桥接模式 相当于给虚拟机分配了一个和主机同一个子网下的ip,此时该虚拟机相当于同一子网中一台主机,可以访问子网中任意一台主机,也可以访问外网. NAT模式 虚拟机 ...
- D3.js系列——布局:饼状图和力导向图
一.饼状图 在布局的应用中,最简单的就是饼状图. 1.数据 有如下数据,需要可视化: , , , , ]; 这样的值是不能直接绘图的.例如绘制饼状图的一个部分,需要知道一段弧的起始角度和终止角度,这些 ...
- java中遍历Map几种方法
java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点. 先初始化一个map: publ ...
- 2017.11.15 hashmap的工作原理
参考来自:http://blog.csdn.net/jeffleo/article/details/54946424 一 hashMap的基本概念 1.HashMap的定义 public class ...
- centos7安装ifconfig命令
ifconfig命令是设置或显示网络接口的程序,可以显示出我们机器的网卡信息,可是有些时候最小化安装CentOS等Linux发行版的时候会默认不安装ifconfig等命令,这时候你进入终端,运行ifc ...