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 ...
随机推荐
- 【母函数】hdu2082 找单词
普通型母函数详解见这里:http://www.wutianqi.com/?p=596 裸题,存个板子. #include<cstdio> #include<cstring> u ...
- 【递归】先修课 计算概论(A) / 函数递归练习(3)2:分解因数
#include<cstdio> using namespace std; bool is_prime(int x) { ;i*i<=x;i++) ) return false; r ...
- Android获取屏幕的宽度和高度(dp)
public void getAndroiodScreenProperty() { WindowManager wm = (WindowManager) this.getSystemService(C ...
- Web服务器在外网能裸奔多久?
很多时候我们轻易地把Web服务器暴露在公网上,查看一下访问日志,可以看到会收到大量的攻击请求,这个是网站开通后几个小时收到的请求: 1. 探测服务器信息 在上线一分钟,收到OPTION请求探测. ...
- easyui missingMessage
<input class="easyui-textbox" type="text" name="username" style=&qu ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.9. 配置用户等效性(可选项)
2.9.配置用户等效性(可选项) Oracle 11g r2 ssh也可以在安装过程中配置. 2.9.1. grid用户等效性 1.以下均以grid用户执行: 在两个节点的grid主目录分别创建.ss ...
- javascript快速入门13--BOM——浏览器对象模型(Browser Object Model)
什么是BOM? BOM是Browser Object Model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对 ...
- Tempter of the Bone——DFS(王道)
Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, ...
- 开源的C# websocket-sharp组件解析
下面我们介绍一款WebSocket组件websocket-sharp的相关内容. 一.websocket-sharp组件概述 websocket-sharp是一个C#实现websocket协议客户端和 ...
- 我为什么学习Windows编程
前一段时间在看TCP/IP,在图书馆里面找了不少的书,其中有几本书还是不错的.比如: <Windows网络与通信程序设计(第二版)> 王艳平著 <WinSock网络编程经络> ...