您的位置:首页 > 数据库 > Redis

Java的redis 操作类-优化通用版本

2016-03-18 21:39 555 查看
首先maven引入依赖包

<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
</dependency>


/*
***************************************************************
* 公司名称    :牛牛
* 系统名称    :问问系统
* 类 名 称    :RedisHelper
* 功能描述    : redis缓存处理类
* 业务描述    :
* 作 者 名    :@Author Royal
* 开发日期    :2015-11-04 10:24
***************************************************************
* 修改日期    :
* 修 改 者    :
* 修改内容    :
***************************************************************
*/
package zhengxin.core;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.*;

public class RedisHelper {

//redis数据库连接池
private static Dictionary<Integer, JedisPool> pools = new Hashtable();

static {
ResourceBundle bundle = ResourceBundle.getBundle("redis");
if (bundle == null) {
throw new IllegalArgumentException(
"[redis.properties] is not found!");
}
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(Integer.valueOf(bundle
.getString("redis.pool.maxActive")));
config.setMaxIdle(Integer.valueOf(bundle
.getString("redis.pool.maxIdle")));
config.setTestOnBorrow(Boolean.valueOf(bundle
.getString("redis.pool.testOnBorrow")));
config.setTestOnReturn(Boolean.valueOf(bundle
.getString("redis.pool.testOnReturn")));

//循环创建16个redis数据库连接池,存放在字典里面
for (int i = 0; i < 16; i++) {
JedisPool item = new JedisPool(config, bundle.getString("redis.ip"),
Integer.valueOf(bundle.getString("redis.port")), 0,
bundle.getString("redis.password"), i);
pools.put(i, item);
}
}

/**
* 直接返回redispool 方便灵活操作
* @param db 数据库序号
*/
public static JedisPool getRedisPool(Integer db) {
return pools.get(db);
}

/**
* 设置数据
* @param key     //key
* @param value   //值
* @param timeOut //过期时间
* @param db      //数据库序号
*/
public static void set(String key, String value, Integer timeOut, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
if (timeOut > 0) {
jredis.expire(key, timeOut);
}
jredis.set(key, value);
poolItem.returnResourceObject(jredis);
}

/**
*  获得hash型key某个字段的值
* @param key     //key
* @param field   //hash字段
* @param db      //数据库序号
* */
public static String getHashField(String key, String field, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
String result = jredis.hget(key, field);
poolItem.returnResourceObject(jredis);
return result;
}

/**
* 根据hashid获取Map 获得hash型key某个字段的值
* @param hashId  //key键
* @param db      //数据库序号
* */
public static Map<String, String> getHashValues(String hashId, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
Map<String, String> result = jredis.hgetAll(hashId);
poolItem.returnResourceObject(jredis);
return result;
}

/**
* 设置数据
* @param key     //key
* @param value   //值
* @param field   //hash字段
* @param db      //数据库序号
*/
public static void SetHashField(String key, String field, String value, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
jredis.hset(key, field, value);
poolItem.returnResourceObject(jredis);
}

/**
* 获取数据
* @param key     //key
* @param db      //数据库序号
*/
public static String get(String key, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
String result = jredis.get(key);
poolItem.returnResourceObject(jredis);
return result;
}

/**
* 删除数据
* @param key     //key
* @param db      //数据库序号
*/
public static void del(String key, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
Long result = jredis.del(key);
poolItem.returnResourceObject(jredis);
}

/**
* 队列插入数据
* @param key     //键
* @param value   //值
* @param db      //数据库序号
*/
public static void lpush(String key, String value, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
jredis.lpush(key, value);
poolItem.returnResourceObject(jredis);
}

/**
* 队列取出数据
* @param key     //键
* @param db      //数据库序号
*/
public static String lpop(String key, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
String result = jredis.lpop(key);
poolItem.returnResourceObject(jredis);
return result;
}

/**
* hash 获取键字段
* @param key     //键
* @param field   //hash字段
* @param db      //数据库序号
*/
public static String hget(String key, String field, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
String result = jredis.hget(key, field);
poolItem.returnResourceObject(jredis);
return result;
}

/**
* hash 删除键字段
* @param key     //键
* @param field   //hash字段
* @param db      //数据库序号
*
*/
public static void hdel(String key, String field, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
jredis.hdel(key, field);
poolItem.returnResourceObject(jredis);
}

/**
* 获取key下所有的值
* @param key     //键
* @param db      //数据库序号
* @return list
*/
public static List<String> llist(String key, Integer db) {
JedisPool poolItem = pools.get(db);
Jedis jredis = poolItem.getResource();
List<String> result = jredis.lrange(key, 0, -1);
poolItem.returnResourceObject(jredis);
return result;
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: