packageUtils;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;importredis.clients.jedis.JedisPoolConfig;importjava.util.List;importjava.util.Map;importjava.util.Set;/*** Created by Kinglf on 2016/10/17.*/
public classJedisUtil {private staticString JEDIS_IP;private static intJEDIS_PORT;private staticString JEDIS_PASSWORD;private staticJedisPool jedisPool;static{//Configuration自行写的配置文件解析类,继承自Properties
Configuration conf=Configuration.getInstance();
JEDIS_IP=conf.getString("jedis.ip","127.0.0.1");
JEDIS_PORT=conf.getInt("jedis.port",6379);
JEDIS_PASSWORD=conf.getString("jedis.password",null);
JedisPoolConfig config=newJedisPoolConfig();
config.setMaxActive(5000);
config.setMaxIdle(256);
config.setMaxWait(5000L);
config.setTestOnBorrow(true);
config.setTestOnReturn(true);
config.setTestWhileIdle(true);
config.setMinEvictableIdleTimeMillis(60000L);
config.setTimeBetweenEvictionRunsMillis(3000L);
config.setNumTestsPerEvictionRun(-1);
jedisPool=new JedisPool(config,JEDIS_IP,JEDIS_PORT,60000);
}/*** 获取数据
*@paramkey
*@return
*/
public staticString get(String key){
String value=null;
Jedis jedis=null;try{
jedis=jedisPool.getResource();
value=jedis.get(key);
}catch(Exception e){
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{
close(jedis);
}returnvalue;
}private static voidclose(Jedis jedis) {try{
jedisPool.returnResource(jedis);
}catch(Exception e){if(jedis.isConnected()){
jedis.quit();
jedis.disconnect();
}
}
}public static byte[] get(byte[] key){byte[] value = null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
value=jedis.get(key);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnvalue;
}public static void set(byte[] key, byte[] value) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.set(key, value);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}public static void set(byte[] key, byte[] value, inttime) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.set(key, value);
jedis.expire(key, time);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}public static void hset(byte[] key, byte[] field, byte[] value) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.hset(key, field, value);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}public static voidhset(String key, String field, String value) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.hset(key, field, value);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}/*** 获取数据
*
*@paramkey
*@return
*/
public staticString hget(String key, String field) {
String value= null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
value=jedis.hget(key, field);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnvalue;
}/*** 获取数据
*
*@paramkey
*@return
*/
public static byte[] hget(byte[] key, byte[] field) {byte[] value = null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
value=jedis.hget(key, field);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnvalue;
}public static void hdel(byte[] key, byte[] field) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.hdel(key, field);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}/*** 存储REDIS队列 顺序存储
*@paramkey reids键名
*@paramvalue 键值*/
public static void lpush(byte[] key, byte[] value) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.lpush(key, value);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}/*** 存储REDIS队列 反向存储
*@paramkey reids键名
*@paramvalue 键值*/
public static void rpush(byte[] key, byte[] value) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.rpush(key, value);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}/*** 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端
*@paramkey reids键名
*@paramdestination 键值*/
public static void rpoplpush(byte[] key, byte[] destination) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.rpoplpush(key, destination);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}/*** 获取队列数据
*@paramkey 键名
*@return
*/
public static List lpopList(byte[] key) {
List list= null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
list= jedis.lrange(key, 0, -1);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnlist;
}/*** 获取队列数据
*@paramkey 键名
*@return
*/
public static byte[] rpop(byte[] key) {byte[] bytes = null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
bytes=jedis.rpop(key);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnbytes;
}public static voidhmset(Object key, Map hash) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.hmset(key.toString(), hash);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}public static void hmset(Object key, Map hash, inttime) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.hmset(key.toString(), hash);
jedis.expire(key.toString(), time);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}public staticList hmget(Object key, String... fields) {
List result= null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
result=jedis.hmget(key.toString(), fields);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnresult;
}public staticSet hkeys(String key) {
Set result= null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
result=jedis.hkeys(key);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnresult;
}public static List lrange(byte[] key, int from, intto) {
List result= null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
result=jedis.lrange(key, from, to);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnresult;
}public static Map hgetAll(byte[] key) {
Map result= null;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
result=jedis.hgetAll(key);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnresult;
}public static void del(byte[] key) {
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.del(key);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}
}public static long llen(byte[] key) {long len = 0;
Jedis jedis= null;try{
jedis=jedisPool.getResource();
jedis.llen(key);
}catch(Exception e) {//释放redis对象
jedisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{//返还到连接池
close(jedis);
}returnlen;
}
}