zoukankan      html  css  js  c++  java
  • 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;
        }
    }
    

      

  • 相关阅读:
    docker-compose.yml(2)
    docker-compose.yml(3)
    docker-compose.yml(4)
    生产者&消费者.py
    工作机制.py
    2.5 webpack 进阶
    2.3 Gulp
    2.4 webpack + gulp 构建完整前端工作流
    2.2 webpack
    2.1 前端工程化概述
  • 原文地址:https://www.cnblogs.com/fangyuan303687320/p/5293671.html
Copyright © 2011-2022 走看看