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

java操作redis多节点处理方式;http://blog.itpub.net/29254281/viewspace-1188644/
首先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;
    }
}

  

转载于:https://www.cnblogs.com/fangyuan303687320/p/5293671.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值