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 ...
随机推荐
- Servlet 2.3 规范
Servlet2.3规范 第一章: servlet2.3规范用到了一下的一些规范:J2EE.JSP1.1.JNDI 在14章中讲述了规范中的所有的classes类或接口(改文中不讲述).对开发者而言以 ...
- [BZOJ 1145] 图腾totem
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1145 Solution: 算是一道神题了吧 设 f(abcd)为:当选出的四个数相对大小 ...
- bzoj 5347: 冒泡排序
考虑到最后a[i]都要等于i,并且每个 a[i] < i 的a[i] 一轮最多向前走一次,所以局数至少是 max{ i - a[i] }. 又因为对于a[i] < i来说,一轮不动意味着 ...
- 【对询问分块】CODEVS1080 线段树练习
#include<cstdio> #include<cmath> using namespace std; #define N 100001 int sum[N],a[N],n ...
- python3-开发面试题(python)6.24基础篇(3)
1.用一行代码实现数值交换: a = 1 b = 2 a,b=b,a 2.Python3和Python2中 int 和 long的区别? long整数类型被Python3废弃,统一使用int ...
- XAMPP 下apache部署网站,多个虚拟机(空间)配置
1.首先修改C盘WINDOWS/system32/drivers/etc目录下的 hosts 文件,用记事本打开,加入: 127.0.0.1 www.a.com 127.0.0.1 www.b.com ...
- Bootstrap标签Tabs
<!--标签--> <ul class="nav nav-tabs" role="tablist"> <li class=&quo ...
- easyui 只刷新当前页面的数据 datagrid reload 方法
$('#refreshbtn').click(function() { $("#t_auclot").datagrid("reload",serializeFo ...
- 增强学习--Sarsa算法
Sarsa算法 实例代码 import numpy as np import random from collections import defaultdict from environment i ...
- Java实现算法之--选择排序
选择排序也是比較简单的一种排序方法,原理也比較easy理解,它与冒泡排序的比較次数同样,但选择排序的交换次数少于冒泡排序.冒泡排序是在每次比較之后,若比較的两个元素顺序与待排序顺序相反,则要进行交换, ...